複製建構函式和深度複製

2021-09-24 12:59:42 字數 597 閱讀 4395

如果類中包含了使用new初始化的指標成員,應當定義乙個複製建構函式,以複製指向的資料,而僅僅是指標。

複製建構函式用於將乙個物件複製到新建立的物件中,因此,它用於初始化過程中(包括按值傳遞引數),而不是常規的賦值過程中。

原型:class_name(const class_name &);

class string;.

..string:

:string

(const string &st)

//複製建構函式定義

將新物件初始化為乙個同類物件

按值將物件傳遞給函式

函式按值返回物件

編譯器生成臨時物件

string & string:

:operator=

(const string &st)

C 淺層複製建構函式和深層複製建構函式

淺層複製建構函式 class person person person one 自定義淺層複製建構函式,就是複製乙個物件,說到底,就是複製傳進來的物件的所有成員變數,實際上,系統的預設淺層複製建構函式也是類似這樣的原理 person void setheight int h int getheigh...

複製控制 複製建構函式

只有單個形參,而且該引數是對本類型別物件的引用。主要用於 1 根據另乙個同型別的物件顯示或隱式的初始化乙個物件 string a abc 呼叫複製建構函式將a初始化為abc string aa string 呼叫string 的建構函式,建立乙個新的物件,再呼叫 複製建構函式初始化aa string...

複製控制 複製建構函式

只有單個形參,而且該引數是對本類型別物件的引用。主要用於 1 根據另乙個同型別的物件顯示或隱式的初始化乙個物件 string a abc 呼叫複製建構函式將a初始化為abc string aa string 呼叫string 的建構函式,建立乙個新的物件,再呼叫 複製建構函式初始化aa string...