作者godspeedlee (妳,我可以)
看板C_and_CPP
標題Re: [問題] class解構function呼叫問題
時間Tue Nov 1 00:14:24 2016
你把你的 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://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1477930467.A.2AE.html
1F:→ jobsdone: 感謝 已經ok了 11/01 18:52
2F:→ hunandy14: 總覺得這個思維好像有點問題(我是指原原PO的) 11/03 00:59
3F:→ hunandy14: 副程式回傳的應該是沒有名字的(右值) 11/03 01:00
4F:→ hunandy14: 要求她存在好像@@ 應該可以用其他方式達成吧~ 11/03 01:01
5F:→ hunandy14: 然後,弄個容器存下來就不會被解構了~ 11/03 01:02
6F:→ hunandy14: ball b1; ball b2 = b1.fun(); system("pause"); 11/03 01:02
7F:→ hunandy14: 不確定你的 程式是寫怎樣~我用我猜的方式說明~~ 11/03 01:03
8F:→ hunandy14: 你可以乾脆在 fun()裡面 (*this)=bx 改值~ 11/03 01:04
9F:→ hunandy14: 或是主程式內 b2.fun(b1) 這樣的方式改 11/03 01:05
10F:→ hunandy14: 不知道有沒有說清楚呢QQ 11/03 01:05
11F:→ hunandy14: 我有誤會什麼,講錯什麼也可以跟我說說~~ 11/03 01:07
12F:→ hunandy14: 這麼說不知道對不對,右值的存在只是暫存給你複製 11/03 01:10
13F:→ hunandy14: 這麼想吧~她要是不自動解你也沒辦法解對吧~ 11/03 01:10
14F:→ hunandy14: 然後你呼叫好幾次之後.... 11/03 01:11
15F:→ hunandy14: 如果只是想把值傳出主程式沒有 b1 b2 資料交互使用 11/03 01:40
16F:→ hunandy14: ball & ball::fun() 傳參考出來就不會被解了~ 11/03 01:40