複製建構函式被呼叫的情況:
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入棧時會呼叫複製建構函式建立乙個區域性物件,與函式內的區域性變數具有相同的作用域需要注意的是,賦值並不會呼叫複製建構函式,賦值只是賦值運...