
1个回答
展开全部
因为复制构造函数是用引用方式传递复制对象,引用方式传递的是地址,因此在构造函数内对该引用的修改会影响源对象。而你在用对象a1构造a2时,自然不希望复制构造函数会改变a1的内容,因此要防止复制构造函数内部修改该引用,所以用const声明。
class A
{
int x;
A(int c){x=c;};
A(const A & c){x=c.x}; // 复制构造函数
}
void main()
{
class A a1(10);
class A a2(a1); // 在用a1构造a2的时候,你当然不希望a1会被改变。
}
class A
{
int x;
A(int c){x=c;};
A(const A & c){x=c.x}; // 复制构造函数
}
void main()
{
class A a1(10);
class A a2(a1); // 在用a1构造a2的时候,你当然不希望a1会被改变。
}

2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同...
点击进入详情页
本回答由网易云信提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询