返回信息流c++ primer里一个习题
13章的:Sales_item::Sales_item(const Sales_item its);
请问这个复制构造函数错在哪?
据说是只能定义为引用,但是为什么呢?
谢了
这是一条镜像帖。来源:北邮人论坛 / cpp / #30017同步于 2009/10/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
请教个问题
monarch
2009/10/17镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
真的没有为什么吗。。。
【 在 jokerlee 的大作中提到: 】
: 你自己都说了,参数必须是常引用, 没有为什么, 就是这么规定的. 拷贝构造函数大多数时候由编译期隐式调用, 所以必须提供统一的接口和格式
【 在 monarch 的大作中提到: 】
: 真的没有为什么吗。。。
最最很主要的原因是,如果允许用值传递的方式声明拷贝构造函数,在调用拷贝函数的时候就会发生对象的值拷贝,而对象的值拷贝又需要通过调用拷贝构造函数来完成,这就会构成一个死循环.而使用传引用的方式就不存在这个问题
恩,正解~~~
AFX 的大作中提到: 】
: 最最很主要的原因是,如果允许用值传递的方式声明拷贝构造函数,在调用拷贝函数的时候就会发生对象的值拷贝,而对象的值拷贝又需要通过调用拷贝构造函数来完成,这就会构成一个死循环.而使用传引用的方式就不存在这个问题
【 在 AFX 的大作中提到: 】
: 最最很主要的原因是,如果允许用值传递的方式声明拷贝构造函数,在调用拷贝函数的时候就会发生对象的值拷贝,而对象的值拷贝又需要通过调用拷贝构造函数来完成,这就会构成一个死循环.而使用传引用的方式就不存在这个问题
恩,正解