學習筆記:複製(拷貝)構造函數

參考:

http://blog.csdn.net/lwbeyond/article/details/6202256

http://blog.csdn.net/feiyond/article/details/1807068


一個空類產生的類成員函數有:

1. 默認構造函數

2. 析構函數

3. 複製構造函數

4. 賦值函數


在C++中,下面三種對象需要拷貝的情況。因此,拷貝構造函數將會被調用。 
1. 一個對象以值傳遞的方式傳入函數體 
2. 一個對象以值傳遞的方式從函數返回 
3. 一個對象需要通過另外一個對象進行初始化 


複製構造函數的作用是類對象的賦值,將一個對象的每一個成員複製到另一個對象對應的成員當中。


複製構造函數(copy constructor)是一種特殊的構造函數,具有單個形參,該形參常用const修飾,是對該類類型的引用。

當定義一個新對象並用一個同類型的對象對它進行初始化時,將顯式的使用複製構造函數。當將該類型的對象傳遞給函數或從函數返回該類型的對象時,將隱式的使用複製構造函數。

複製構造函數、賦值操作符、析構函數總稱爲複製控制(copy control)。編譯器自動實現這些操作,但類也可以定義自己的版本。


有一種特別常見的情況需要類定義自己的複製控制成員:類具有指針成員。如果一個類中有指針成員,使用缺省的複製構造函數初始化對象就會出現問題。




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章