0
可能重複:
What is The Rule of Three?任何人都可以請給我一個如何在C++中正確使用「三巨頭」的例子嗎?
您好,我一直在閱讀有關的話題,許多網站告訴我爲什麼我需要一個構造函數,構造函數拷貝和析構函數。但是我很難找到如何使用它們的好例子。 另外我真的不明白爲什麼我們需要將參數作爲const傳遞給copy ctor。任何幫助,將不勝感激!
可能重複:
What is The Rule of Three?任何人都可以請給我一個如何在C++中正確使用「三巨頭」的例子嗎?
您好,我一直在閱讀有關的話題,許多網站告訴我爲什麼我需要一個構造函數,構造函數拷貝和析構函數。但是我很難找到如何使用它們的好例子。 另外我真的不明白爲什麼我們需要將參數作爲const傳遞給copy ctor。任何幫助,將不勝感激!
我覺得這個What is The Rule of Three?可能會回答你的問題。
順便說一句,這些網站都是錯誤的。三*的規則不涉及構造函數;另一方面,它包括賦值運算符。 –
您實際上不必將參數作爲const傳遞給您的拷貝構造函數。我曾經爲使用非const引用的人工作。這真的很愚蠢,但你可以做到。 –
@Konrad Rudolph:我知道你的意思,但我會爭辯說,當三條規則被應用時,你需要確保構造函數也在那裏。你不希望依賴於你的類的用戶正確使用值初始化,以確保指針是NULL(因此我認爲它的規則是4(所有四個編譯器生成的方法更好,當你擁有RAW指針時覆蓋更好)) 。 –