建構函式以及複製控制操作的呼叫時機

2021-07-03 12:01:21 字數 1071 閱讀 8532

複製控制操作包括:複製建構函式、賦值操作符、析構函式;

以下兩個例子給出建構函式和複製操作的呼叫時機。

複製建構函式可用於:

1)根據乙個同類型別物件顯示或隱式初始化乙個物件;

2)複製乙個物件,將其作為實參傳遞給乙個函式;

3)從函式返回時複製乙個物件;

4)初始化順序容器中的元素;

5)根據元素初始化列表初始化陣列元素。

class a 

a(const a & a)

a& operator=(const a& rhs)

};a global; //呼叫建構函式

a foo(a arg) ;

cout << "7---------------" << endl;

/*如果是這樣的定義,則只呼叫四次建構函式,不會呼叫複製建構函式

a pa[4];

*/ return *heap; //呼叫複製建構函式,從函式返回a物件*heap的副本

};void func1(exmpl obj) {} //形參為exmpl物件

void func2(exmpl& obj) {} //形參為exmpl物件的引用

普通建構函式 複製建構函式以及等號過載

include class aaa 新建的乙個普通類 class test test aaa a test test t 複製建構函式 test operator aaa a 等號過載 test operator test t 等號過載 int main int argc,char argv 輸出結...

建構函式以及this

實際上建構函式與普通的函式並沒有區別,所以一般在開發中會使用大駝峰命名規則來區別普通的函式,建構函式實際上是通過返回乙個this值來完成建構函式的建立的.這個rutern this的操作由new這個操作符來完成,當然個人也可以手動來設定return的返回值,手動設定的返回值會覆蓋由new所自動新增的...

建構函式以及this

實際上建構函式與普通的函式並沒有區別,所以一般在開發中會使用大駝峰命名規則來區別普通的函式,建構函式實際上是通過返回乙個this值來完成建構函式的建立的.這個rutern this的操作由new這個操作符來完成,當然個人也可以手動來設定return的返回值,手動設定的返回值會覆蓋由new所自動新增的...