拷貝構造的N種情況

1.C++對傳參合傳返回值時構造的優化處理的總結。
在c++中,傳參和傳返回值時,如果是引用類型,則不用調用拷貝構造函數,直接返回別名。當語句爲一個表達式時,編譯器會選擇優化,將構造函數與拷貝構造合併。在C++中,調用幾次構造函數和拷貝構造函數,就會相應的調用幾次析構函數。只有當一個對象已經存在時,d=f()才調用賦值運算符重載,如果對象不存在,則調用的是構造函數。

2.再完成下面的題目。
Test1中調用了2_次AA的拷貝構造函數,_1次AA的賦值運算符函數的重載。
Test2中調用了2_次AA的拷貝構造函數,_0次AA的賦值運算符函數的重載。
Test3中調用了3_次AA的拷貝構造函數,_0次AA的賦值運算符函數的重載。

class AA 
{}; 
AA f (AA a) 
{ 
 return a ; 
} 
void Test1 () 
{ 
 AA a1 ; 
 a1 = f(a1); 
} 
void Test2 () 
{ 
 AA a1 ; 
 AA a2 = f(a1); 
} 

void Test3 () 
{ 
 AA a1 ; 
 AA a2 = f(f(a1)); 
} 

這裏寫圖片描述
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章