作者anoymouse (沒有暱稱)
看板C_and_CPP
標題[問題] copy constructor in this code
時間Sun Dec 14 01:28:48 2014
這是在dev c執行的結果
http://i.imgur.com/wbAaPu1.png
這是codepad執行的結果
http://codepad.org/15eok8cW
dev的是兩個拷貝一個解構
codep的是四個拷貝 三個解構
我以為是三個拷貝 一解構
請問codep的是因為傳值 呼叫一次 函式內宣告一次 回傳一次 main接收又複製一次?
然後一離開函式三個都解構這樣?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.44.29.191
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1418491732.A.774.html
→ PkmX: Google: Copy elision & (N)RVO 12/14 01:53
→ PkmX: 另外你看到的結果其實不是完整的 因為你程式停下來的時候 12/14 01:53
→ PkmX: main還沒結束 正常來說ctor+copy ctor數量和dtor應該要一樣 12/14 01:54
→ PkmX: 補充一下 以標準來說這份code出現2~4個copy ctor都是正確的 12/14 02:11
→ anoymouse: 我知道在結束會全解 他還沒結束就解三個 12/14 02:14
→ anoymouse: 是涵式三個? 12/14 02:42
→ PkmX: 是的 12/14 03:32