[問題] return a local value

看板C_and_CPP作者 (你今天浪費時間了嗎?)時間14年前 (2011/12/24 16:16), 編輯推噓0(003)
留言3則, 1人參與, 最新討論串1/2 (看更多)
問題(Question): 請問第30行 " return obj; " 回傳local variable 值到main時 做了什麼事? copy ctor? 可以讓main好像有了一個新的物件,不會因為out of scope結果輸出錯誤值 感謝!! 程式碼(Code):(請善用置底文網頁, 記得排版) http://codepad.org/7SnYOmdn -- 蓬頭垢面綁馬尾的中年胖大叔拿鼓棒打爵士鼓是音樂浪人 蓬頭垢面綁馬尾的中年胖大叔拿滑鼠打三國是死宅男 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.122.183

12/24 20:23, , 1F
正常來說會呼叫copy ctor將str()內的obj複製給main()的y
12/24 20:23, 1F

12/24 20:27, , 2F
但是C++標準允許compiler只建構y然後直接對y進行操作
12/24 20:27, 2F

12/24 20:28, , 3F
省略掉一次copy的動作 有興趣可以查一下RVO/NRVO
12/24 20:28, 3F
文章代碼(AID): #1EzOf6Cc (C_and_CPP)
文章代碼(AID): #1EzOf6Cc (C_and_CPP)