複製控制操作包括:複製建構函式、賦值操作符、析構函式;
以下兩個例子給出建構函式和複製操作的呼叫時機。
複製建構函式可用於:
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所自動新增的...