看板 C_and_CPP 關於我們 聯絡資訊
你把你的 ball 補上以下東西,然後再 step by step 追一次看看 ball(const ball& src) operator=(const ball& src) 如果你要模擬傳統 C linked list,而且不想面對以上兩個 function member,又要達成自動記憶體管理, 感覺 boost::shared_ptr 是最好的選擇? -- 各種雜七雜八的心得與無病呻吟 http://goodspeedlee.blogspot.tw/ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.136.58.24 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1477930467.A.2AE.html
jobsdone: 感謝 已經ok了 11/01 18:52
hunandy14: 總覺得這個思維好像有點問題(我是指原原PO的) 11/03 00:59
hunandy14: 副程式回傳的應該是沒有名字的(右值) 11/03 01:00
hunandy14: 要求她存在好像@@ 應該可以用其他方式達成吧~ 11/03 01:01
hunandy14: 然後,弄個容器存下來就不會被解構了~ 11/03 01:02
hunandy14: ball b1; ball b2 = b1.fun(); system("pause"); 11/03 01:02
hunandy14: 不確定你的 程式是寫怎樣~我用我猜的方式說明~~ 11/03 01:03
hunandy14: 你可以乾脆在 fun()裡面 (*this)=bx 改值~ 11/03 01:04
hunandy14: 或是主程式內 b2.fun(b1) 這樣的方式改 11/03 01:05
hunandy14: 不知道有沒有說清楚呢QQ 11/03 01:05
hunandy14: 我有誤會什麼,講錯什麼也可以跟我說說~~ 11/03 01:07
hunandy14: 這麼說不知道對不對,右值的存在只是暫存給你複製 11/03 01:10
hunandy14: 這麼想吧~她要是不自動解你也沒辦法解對吧~ 11/03 01:10
hunandy14: 然後你呼叫好幾次之後.... 11/03 01:11
hunandy14: 如果只是想把值傳出主程式沒有 b1 b2 資料交互使用 11/03 01:40
hunandy14: ball & ball::fun() 傳參考出來就不會被解了~ 11/03 01:40