0
A
回答
0
如果你的類包含指針成員,這是動態分配那麼你需要提供自己的版本的副本construcor,因爲默認版本只是使它們的淺拷貝。
+0
這個規則太寬泛了,對於我實現的任何具有指針的類,通常都只是false。幾乎我使用指針的唯一原因是非擁有可重定義的引用。在這種情況下,編譯器生成的拷貝構造函數很好。 –
+0
@Benjamin Lindley:希望能幫助你更好地理解。 –
0
不是。
默認的複製構造函數在99.9%的情況下是完美的。
擁有指針的類的例外。這裏默認拷貝構造函數的淺拷貝不能像初學者所期望的那樣工作。
但是,你永遠不應該在你的類中有指針,所以它不成問題。爲了清楚這一點,任何擁有的指針都應該包含在智能指針(或容器類型)對象中。所以這不是問題。
如果您正在編寫一個智能指針或像對象一樣的容器,那麼您需要實現三條規則。
相關問題
- 1. C++默認的拷貝構造函數
- 2. C++默認拷貝構造函數
- 3. 用模板拷貝構造函數替換默認拷貝構造函數
- 4. 轉發拷貝構造函數問題
- 5. 的拷貝構造函數
- 6. 刪除拷貝構造函數結果中刪除默認的構造函數
- 7. 使用默認生成的拷貝構造函數Q_DECLARE_METATYPE
- 8. 是否可以「添加」到默認的拷貝構造函數?
- 9. C++是什麼Derived默認拷貝構造函數初始化Base拷貝構造函數用?
- 10. 拷貝構造函數
- 11. 拷貝構造函數knowlege
- 12. 拷貝構造函數++
- 13. 拷貝構造函數與鄰接表
- 14. 2默認拷貝構造函數:有可能嗎?
- 15. C++編譯器如何合成默認拷貝構造函數
- 16. g ++中奇怪的C++構造函數/拷貝構造函數問題
- 17. 問題的ostringstream和拷貝構造
- 18. 查找類拷貝構造的問題
- 19. C++的std :: deque的拷貝構造函數問題
- 20. 複製構造函數中的深拷貝的問題
- 21. Java的ArrayList的拷貝構造函數
- 22. 拷貝構造函數和函數從
- 23. 模板類隱含的拷貝構造函數問題
- 24. 基類的拷貝構造函數(C++)
- 25. C++中的拷貝構造函數
- 26. 奇怪的拷貝構造函數
- 27. Java的拷貝構造函數
- 28. 拷貝構造函數的地址
- 29. shared_ptr的拷貝構造函數裏面
- 30. 新圖的深拷貝構造函數
http://stackoverflow.com/questions/4172722/what-is-the-rule-of-three – Mahesh