類和物件 複製建構函式

2022-07-11 21:06:08 字數 777 閱讀 5822

形如x::x( x& )x::x(const x &), 二選一,後者能以常量物件作為引數

class complex ;

complex c1; //呼叫預設無參建構函式

complex c2(c1);//呼叫預設的複製建構函式,將 c2 初始化成和c1一樣

class complex 

complex(const complex & c)

};complex c1;

complex c2(c1);//呼叫自己定義的複製建構函式,輸出 copy constructor called

class csample  //錯,不允許這樣的建構函式

};

complex c2(c1);

complex c2 = c1; //初始化語句,非賦值語句

class a

; a(a & a)

};void func(a a1)

int main()

輸出結果: copy constructor called

class a

; a(const a & a)

};a func()

int main()

輸出結果:

copy constructor called

4

類和物件基礎 複製建構函式

1 只有乙個引數,即對同類物件的引用。形如 x x x 或x x const x 二者選一後者能以常量物件作為引數 2 如果沒有定義複製建構函式,那麼編譯器生成預設複製建構函式。預設的複製建構函式完成複製功能。例 如果沒有定義複製建構函式 class complex complex c1 呼叫預設無...

類與物件 組合類的建構函式和複製建構函式

初始化列表是用於構造函式引數的初始化,與其他函式不同,建構函式除了有名字,引數列表和函式體之外,還可以有初始化列表,初始化列表以冒號開頭,後跟一系列以逗號分隔的初始化字段。如 class myclock 建構函式的實現和初始化設定 myclock myclock int hh,int mm,int ...

類與物件 複製建構函式

二進位制複製不複製指向的記憶體單元,這導致兩個 mystring 物件指向同乙個記憶體單元。函式 usemystring 返回時,變數 str 不再在作用域內,因此被銷毀。為此,將呼叫 mystring 類的析構函式,而該析構函式使用 delete釋放分配給 buffer 的記憶體,這將導致 mai...