C 普通建構函式和複製建構函式的區別

2021-08-08 05:10:53 字數 415 閱讀 6014

(1)形式上

類名(形參列表)//普通建構函式的宣告,如box(int h ,int w,int len);

類名(類名 & 物件名)//複製建構函式的宣告,如box(box &b);

(2)在建立物件時,實參不同,系統會根據引數來決定呼叫哪個建構函式

box box1(12,15,37);//實參為整數,呼叫普通建構函式

box box2(box1);//實參是物件名,呼叫複製建構函式

(3)在什麼情況下呼叫

普通建構函式在程式中建立物件時被呼叫。

複製建構函式在用已有的物件複製乙個新物件時被呼叫,在以下3種情況下需要轉殖物件:

1)程式中需要新建乙個物件,並用另外乙個同樂的物件對它初始化,

2)當函式的引數為類的物件時。

3)函式返回值是類的物件時。

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

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

C 建構函式詳解(複製建構函式)

該類物件被建立時,編譯系統物件分配記憶體空間,並自動呼叫該建構函式,由建構函式完成成員的初始化工作,故 建構函式的作用 初始化物件的資料成員。1 class complex 2 18 19 一般建構函式 也稱過載建構函式 20 一般建構函式可以有各種引數形式,乙個類可以有多個一般建構函式,前提是引數...

C 賦值建構函式 複製建構函式

編譯器提供乙個不接受任何引數,也不執行任何操作的建構函式,稱之為預設建構函式 這是因為創造物件的時候總會呼叫預設建構函式 klunk klunk 定義 klunk lunk 宣告 使用預設建構函式 如果定義了建構函式,c 不會定義預設建構函式,如果希望建立物件時不顯示地對他進行初始化,則必須顯示的定...