[问题] copy constructor in this code

楼主: anoymouse (没有暱称)   2014-12-14 01:28:48
这是在dev c执行的结果
http://i.imgur.com/wbAaPu1.png
这是codepad执行的结果
http://codepad.org/15eok8cW
dev的是两个拷贝一个解构
codep的是四个拷贝 三个解构
我以为是三个拷贝 一解构
请问codep的是因为传值 呼叫一次 函式内宣告一次 回传一次 main接收又复制一次?
然后一离开函式三个都解构这样?
作者: PkmX (阿猫)   2014-12-14 01:53:00
Google: Copy elision & (N)RVO另外你看到的结果其实不是完整的 因为你程式停下来的时候main还没结束 正常来说ctor+copy ctor数量和dtor应该要一样补充一下 以标准来说这份code出现2~4个copy ctor都是正确的
楼主: anoymouse (没有暱称)   2014-12-14 02:14:00
我知道在结束会全解 他还没结束就解三个是涵式三个?
作者: PkmX (阿猫)   2014-12-14 03:32:00
是的

Links booklink

Contact Us: admin [ a t ] ucptt.com