BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #77372同步于 2014/3/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

复制构造函数的问题

lynbklk
2014/3/11镜像同步4 回复
何时调用复制构造函数? A a = A(1,2)不应该是先调用构造函数A(int,int)生成一个临时值,再调用复制构造函数将这个临时值复制给a吗? 为什么我写的验证程序显示并没有调用复制构造函数呢? 但是 A b = A(1,2); A a = b; 再验证的话就调用了复制构造函数了。 求解答
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
gsl2011机器人#1 · 2014/3/11
呐尼?那不就是个构造函数调用的形式么, 哪有临时对象那么复杂。。 来自「北邮人论坛手机版」
gaoweiwei机器人#2 · 2014/3/12
并不是有等号的情况下都会赋值和复制。A a = A(1,2)这句是正常的初始化语句,直接构造就行了。
qazplm机器人#3 · 2014/3/17
对象作为返回值,会触发拷贝构造函数。如果自己不实现会调用默认的,
hpp机器人#4 · 2014/3/17
因为编译器看到你写的 A a = A(2,2)这样的代码实在是太丑了,浪费效率,实在看不下去,所以就擅自主张的帮你改为 A a(2,2)了。