拷貝建構函式筆記

2021-10-05 14:43:16 字數 904 閱讀 7242

格式 person(const person&p);

person視為乙個任意的類名

const 使p的成員值不能發生改變

(1)括號法

person p1;

person p2(10);//有參建構函式

person p3(p2);//呼叫拷貝建構函式

注意事項:呼叫預設建構函式時,不要加()

解釋:加括號時,編譯器會認為時乙個函式的宣告,不會建立乙個物件

(2)顯示法

person p2=person(10);//有參構造

person p3=person(p2);//拷貝構造

單獨拿出person(10) 為乙個匿名物件,當前執行結束後,會直接**掉匿名物件

注意事項:不要利用拷貝建構函式來初始化乙個匿名物件 person(p3);編譯器會認為

person p3 重定義了,會報錯

(3)隱式轉換法;

person p4=10==person p4=person(10)//有參構造;

person p5=p4;拷貝構造;

使用乙個已經建立完畢的物件來初始化乙個新的物件

值傳遞的方式給函式引數傳遞

以值方式返回區域性物件1:

person p1(20);

person p2(p1);

2:void dowore(person p)

person p;

dowore(p);//傳遞時會呼叫拷貝函式

3:person dowork()

person p=dowork();//呼叫拷貝構造,按照p1物件返回拷貝乙個和p1一樣的物件

拷貝建構函式 筆記

乙個建構函式的引數是自身類型別的引用,且任何額外引數都有預設值,則此建構函式是拷貝建構函式。class foo如果我們沒有為類定義拷貝建構函式,編譯器會為我們定義乙個。與合成預設建構函式不同,即使我們定義了其他建構函式,編譯器也會為我們合成乙個拷貝建構函式。合成的拷貝建構函式會將引數的成員逐個拷貝到...

oc建構函式筆記

1,建構函式的作用 用來對alloc建立的物件 及用alloc來分配儲存空間,是一塊 地 進行初始化。如果初始化失敗,則返回nil。2,如果是無參建構函式,函式名必須是init。返回值必須是id,函式前面必須是 號,如 id init 系統會自帶乙個無參的建構函式,作用是將當前物件的所有成員的內容初...

呼叫建構函式筆記

include using namespace std class cpoint 帶乙個引數的可用於型別轉換的建構函式 explicit 加上 explicit 可防止 cpoint pt1 1 這種隱性轉換 cpoint int ix 帶引數的建構函式 cpoint int ix,int iy 拷...