C 複製建構函式被呼叫的情況

2021-10-09 09:50:24 字數 1105 閱讀 7185

複製建構函式被呼叫的情況:

1:用類的乙個已知物件去初始化該類的另乙個正在建立的物件;

2:採用傳值的呼叫方式時,物件作為函式實參傳遞給函式形參;

3:物件作為函式返回值

**:

//測試複製建構函式的呼叫

//使用靜態量 num 計數表示id

#include

using

namespace std;

static

int num =0;

class

cpfun

cpfun

(cpfun& a)

~cpfun()

};cpfun fun

(cpfun a)

//2:採用傳值的方式(如果是cpfun& a,就不會呼叫copy函式)時,物件作為函式實參傳遞給函式形參

intmain()

輸出:

construct function is called.

1cpfun a;

1construct function is called.

2cpfun b;

2copy function is called.

3cpfun c

(a);

3copy function is called.

4cpfun fun

(cpfun a)

4construct function is called.

5cpfun temp;

5temp = a;

5copy function is called.

6deconstruct function is called.

5deconstruct function is called.

4deconstruct function is called.

3b =

fun(a);3

請按任意鍵繼續.

..

**newbee,感覺應該是必須掌握的東西,發出來怪尷尬的,就當做個筆記,☺.

C 複製建構函式被呼叫的三種情況

class point point point p 複製建構函式 int getx int gety private int x,y point point point p int main 結果 結果 注意 只有把物件用值傳遞時,才會呼叫複製建構函式,如果傳遞引用,則不會呼叫複製建構函式。注意 在...

C 中複製建構函式被呼叫的三種情況

c 中的建構函式分為建構函式,和複製建構函式,相比於建構函式,複製建構函式使用更加方便,快捷。建構函式可以有多個,二複製建構函式只能有乙個,因為複製建構函式的引數 只能是當前類的乙個物件,參數列是固定的,無法過載,若使用者沒有定義自己的輔助建構函式,系統會自動生成乙個複製建構函式,其作用是將引數的之...

C 複製建構函式在什麼時候被呼叫?

person p q 此時複製建構函式被用來建立例項p person p q 此時複製建構函式被用來在定義例項p時初始化pf p 此時p作為函式的引數進行值傳遞,p入棧時會呼叫複製建構函式建立乙個區域性物件,與函式內的區域性變數具有相同的作用域需要注意的是,賦值並不會呼叫複製建構函式,賦值只是賦值運...