2011-07-25 67 views

回答

0

如果你的類包含指針成員,這是動態分配那麼你需要提供自己的版本的副本construcor,因爲默認版本只是使它們的淺拷貝。

+0

這個規則太寬泛了,對於我實現的任何具有指針的類,通常都只是false。幾乎我使用指針的唯一原因是非擁有可重定義的引用。在這種情況下,編譯器生成的拷貝構造函數很好。 –

+0

@Benjamin Lindley:希望能幫助你更好地理解。 –

0

不是。

默認的複製構造函數在99.9%的情況下是完美的。

擁有指針的類的例外。這裏默認拷貝構造函數的淺拷貝不能像初學者所期望的那樣工作。

但是,你永遠不應該在你的類中有指針,所以它不成問題。爲了清楚這一點,任何擁有的指針都應該包含在智能指針(或容器類型)對象中。所以這不是問題。

如果您正在編寫一個智能指針或像對象一樣的容器,那麼您需要實現三條規則。