[問題] copy constructor in this code

看板C_and_CPP (C/C++)作者 (沒有暱稱)時間11年前 (2014/12/14 01:28), 編輯推噓0(007)
留言7則, 2人參與, 最新討論串1/1
這是在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

12/14 01:53, , 1F
Google: Copy elision & (N)RVO
12/14 01:53, 1F

12/14 01:53, , 2F
另外你看到的結果其實不是完整的 因為你程式停下來的時候
12/14 01:53, 2F

12/14 01:54, , 3F
main還沒結束 正常來說ctor+copy ctor數量和dtor應該要一樣
12/14 01:54, 3F

12/14 02:11, , 4F
補充一下 以標準來說這份code出現2~4個copy ctor都是正確的
12/14 02:11, 4F

12/14 02:14, , 5F
我知道在結束會全解 他還沒結束就解三個
12/14 02:14, 5F

12/14 02:42, , 6F
是涵式三個?
12/14 02:42, 6F

12/14 03:32, , 7F
是的
12/14 03:32, 7F
文章代碼(AID): #1KZ7TKTq (C_and_CPP)
文章代碼(AID): #1KZ7TKTq (C_and_CPP)