person p(2
);person q
(&p)
;
void
test
(person p)
person q(2
);test
(q)//此時會 建立乙個q副本,傳給p
注意,主要看拷貝建構函式是怎麼寫的,因為構造q的時候是用有參建構函式,而拷貝q的時候用的拷貝建構函式
當兩者不同時,q和p也不想同
所以q和p有可能不同
這個時候,不同編譯環境,好像結果不一樣,有的會呼叫拷貝構造,有的不會
乙個預設構造
乙個拷貝構造(會拷貝所有的值)
乙個預設析構
一旦自定義建構函式,系統就不給提供預設的無參構造,所以要自定義建構函式,以後需要什麼型別的建構函式就要自己寫
拷貝建構函式應用場景分析
拷貝建構函式又叫複製建構函式,是一種特殊的建構函式,它由編譯器呼叫來完成一些基於同一類的其他物件的構建及初始化。有四個應用場景。class aa aa const aa obj2 這裡即拷貝建構函式 aa protected private int a 第乙個應用場景 定義變數並初始化 建立乙個全域...
拷貝建構函式應用場景之二
include using namespace std class test test int x,int y test const test another void printt test private int m x int m y 場景4 test func2 匿名的物件 temp 匿名物...
自定義拷貝建構函式 預設的拷貝建構函式
自定義拷貝建構函式 類名 類名 const 類名 物件名 拷貝建構函式的函式體 利用下述語句呼叫拷貝建構函式 rectangle p2 p1 include using namespace std class rectangle public rectangle int len,int wid le...