Re: [問題] class解構function呼叫問題

作者: godspeedlee (妳,我可以)   2016-11-01 00:14:24
你把你的 ball 補上以下東西,然後再 step by step 追一次看看
ball(const ball& src)
operator=(const ball& src)
如果你要模擬傳統 C linked list,而且不想面對以上兩個
function member,又要達成自動記憶體管理,
感覺 boost::shared_ptr 是最好的選擇?
作者: jobsdone (完工了)   2016-11-01 18:52:00
感謝 已經ok了
作者: hunandy14 (Charlott.HonG)   2016-11-03 00:59:00
總覺得這個思維好像有點問題(我是指原原PO的)副程式回傳的應該是沒有名字的(右值)要求她存在好像@@ 應該可以用其他方式達成吧~然後,弄個容器存下來就不會被解構了~ball b1; ball b2 = b1.fun(); system("pause");不確定你的 程式是寫怎樣~我用我猜的方式說明~~你可以乾脆在 fun()裡面 (*this)=bx 改值~或是主程式內 b2.fun(b1) 這樣的方式改不知道有沒有說清楚呢QQ我有誤會什麼,講錯什麼也可以跟我說說~~這麼說不知道對不對,右值的存在只是暫存給你複製這麼想吧~她要是不自動解你也沒辦法解對吧~然後你呼叫好幾次之後....如果只是想把值傳出主程式沒有 b1 b2 資料交互使用ball & ball::fun() 傳參考出來就不會被解了~

Links booklink

Contact Us: admin [ a t ] ucptt.com