C++:为什么复制构造函数的参数一般是const型的?

如题... 如题 展开
 我来答
meatballNo1
2009-02-11 · TA获得超过529个赞
知道小有建树答主
回答量:154
采纳率:0%
帮助的人:239万
展开全部
因为复制构造函数是用引用方式传递复制对象,引用方式传递的是地址,因此在构造函数内对该引用的修改会影响源对象。而你在用对象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会被改变。
}
网易云信
2023-12-06 广告
UIkit是一套轻量级、模块化且易于使用的开源UI组件库,由YOOtheme团队开发。它提供了丰富的界面元素,包括按钮、表单、表格、对话框、滑块、下拉菜单、选项卡等等,适用于各种类型的网站和应用程序。UIkit还支持响应式设计,可以根据不同... 点击进入详情页
本回答由网易云信提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式