看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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
zlw:程式看起來很容易,不過看不懂,呵呵 07/27 23:46
holymars:所以是要我自己寫一個有deep copy的smart ptr =3= 07/27 23:59
QQ29:看不懂= = ..... 07/28 00:00
yoco315:嗯阿.. 寫一個.. 很簡單的.. 你已經寫過惹阿.. 07/28 00:07
yoco315:樓主第一篇那幾行就是啦ㄎㄎ.. 改成 template 就好惹.. 07/28 00:07
legendmtg:這兩個id在這討論...XDrz 07/28 00:08
conan77420:看到程式我的表情 => Q_Q b 07/28 00:12
sunneo:要命 _=o=_... 你的用語好新潮 我看不懂 T^T 07/28 00:56