下列情况中,不会调用复制构造函数的是()。

A、用一个对象去初始化同一类的另一个新对象时;B、将类的一个对象赋予该类的另一个对象时;C、函数的形参是类的对象,调用函数进行形参和实参结合时;D、函数的返回值是类的对象... A、用一个对象去初始化同一类的另一个新对象时;
B、将类的一个对象赋予该类的另一个对象时;
C、函数的形参是类的对象,调用函数进行形参和实参结合时;
D、函数的返回值是类的对象,函数执行返回调用时。

我知道“
在C++中,下面三种对象需要调用拷贝构造函数(有时也称“复制构造函数”):
1) 一个对象作为函数参数,以值传递的方式传入函数体;
2) 一个对象作为函数返回值,以值传递的方式从函数返回;
3) 一个对象用于给另外一个对象进行初始化(常称为赋值初始化);
”,为什么答案是D,D不是符合2吗?
展开
 我来答
qmg1023
2013-11-13 · TA获得超过888个赞
知道小有建树答主
回答量:804
采纳率:0%
帮助的人:900万
展开全部
编译器会进行优化,例如编译器知道这个临时对象是返回的,编辑器直接将其放置在需要返回的栈里面,程序返回结果直接取那个栈结果,就省去了一次复制构造

这个是C++的常用优化手段
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式