关于拷贝构造函数的疑问

w66187564 2008-03-01 12:59:41
拷贝构造函数的参数为什么必须是对象的引用,而不能直接是对象?
...全文
108 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Chappell 2008-03-01
  • 打赏
  • 举报
回复
如果是直接对象参数会导致调用拷贝构造函数。
无限递归,最后栈溢出,程序退出。
michney 2008-03-01
  • 打赏
  • 举报
回复
栈溢出嘛
你传参的时候,要根据实参构造副本,要掉拷贝构造函数(自身无限递归),最后溢出
visame 2008-03-01
  • 打赏
  • 举报
回复
对,如果不是引用就是无限递归
你需要明白函数传参(非引用的话)的时候是拷贝传递的,所以要调用拷贝构造函数。
RMS_forever 2008-03-01
  • 打赏
  • 举报
回复
是无限递归,每次编译器都会产生一个临时对象,直到内存耗尽
dragonfly2008 2008-03-01
  • 打赏
  • 举报
回复
在按值传递时,本身传递对象副本,就调用了拷贝构造函数
结果反复调用,造成无限循环
hityct1 2008-03-01
  • 打赏
  • 举报
回复
mark
iambic 2008-03-01
  • 打赏
  • 举报
回复
按值传参需要调用拷贝构造函数。
xbt746 2008-03-01
  • 打赏
  • 举报
回复
又学习了东西
a013231 2008-03-01
  • 打赏
  • 举报
回复
class Foo
{
public:
Foo(Foo f) {}//如何把实参复制给形参?调用Foo::Foo(Foo)?那好,无限递归吧.
};
dubiousway 2008-03-01
  • 打赏
  • 举报
回复
如果不是引用,那就会形成无限嵌套,无限循环。你仔细想一下就明白了

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧