[問題] 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