Re: [問題] operator= overloading有沒有比較快的밠…

看板C_and_CPP (C/C++)作者 (眠月)時間16年前 (2009/07/27 23:39), 編輯推噓6(602)
留言8則, 7人參與, 最新討論串1/1
※ 引述《holymars ()》之銘言: 有解阿.. ^^ 不要用 raw pointer, 用 deep-copy 語意的 smart pointer 就好了 class Q_Q { ... } ; class A_A { Loki::SmartPtr<Q_Q, Loki::DeepCopy> qq ; } ; 降的話這個 qq 就有 value 語意, 就根本不需要手動寫 operator=() 惹, 你直接 A_A a ; A_A b ; b = a ; qq 的內容就會進行深層拷貝。 但是 Loki::DeepCopy 有要求型別一定要有 Clone() 函數, 如果你不喜歡這個限制,但是又想要擋掉 self-assignment, 就自己寫一個簡單可以擋掉 self-assignment 的 deep copy smart pointer class template, 然後你的 raw pointer 都用自己寫低那ㄍ smart pointer 取代就好惹... 事ㄅ事好容易... -- To iterate is human, to recurse, divine. 遞迴只應天上有, 凡人該當用迴圈.   L. Peter Deutsch -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.160.106.83

07/27 23:46, , 1F
程式看起來很容易,不過看不懂,呵呵
07/27 23:46, 1F

07/27 23:59, , 2F
所以是要我自己寫一個有deep copy的smart ptr =3=
07/27 23:59, 2F

07/28 00:00, , 3F
看不懂= = .....
07/28 00:00, 3F

07/28 00:07, , 4F
嗯阿.. 寫一個.. 很簡單的.. 你已經寫過惹阿..
07/28 00:07, 4F

07/28 00:07, , 5F
樓主第一篇那幾行就是啦ㄎㄎ.. 改成 template 就好惹..
07/28 00:07, 5F

07/28 00:08, , 6F
這兩個id在這討論...XDrz
07/28 00:08, 6F

07/28 00:12, , 7F
看到程式我的表情 => Q_Q b
07/28 00:12, 7F

07/28 00:56, , 8F
要命 _=o=_... 你的用語好新潮 我看不懂 T^T
07/28 00:56, 8F
文章代碼(AID): #1ARSefc9 (C_and_CPP)
文章代碼(AID): #1ARSefc9 (C_and_CPP)