Re: [問題] operator= overloading有沒有比較快的밠…
※ 引述《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
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
07/28 00:07, 5F
推
07/28 00:08, , 6F
07/28 00:08, 6F
推
07/28 00:12, , 7F
07/28 00:12, 7F
推
07/28 00:56, , 8F
07/28 00:56, 8F
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章