class point
point(point &p); //複製建構函式
int getx()
int gety()
private:
int x, y;
}; point::point(point &p)
int main()
結果:
結果:
注意:只有把物件用值傳遞時,才會呼叫複製建構函式,如果傳遞引用,則不會呼叫複製建構函式。
注意:在有些編譯環境下,上面執行結果可能不盡相同,因為編譯器有時會針對複製建構函式的呼叫做優化,避免不必要的複製建構函式的呼叫。故這裡本應該有複製建構函式的呼叫的,但由於編譯器進行了優化,沒有呼叫複製建構函式。
//4-2point類完整程式
#include using namespace std;
class point
point(point &p); //複製建構函式
C 中複製建構函式被呼叫的三種情況
c 中的建構函式分為建構函式,和複製建構函式,相比於建構函式,複製建構函式使用更加方便,快捷。建構函式可以有多個,二複製建構函式只能有乙個,因為複製建構函式的引數 只能是當前類的乙個物件,參數列是固定的,無法過載,若使用者沒有定義自己的輔助建構函式,系統會自動生成乙個複製建構函式,其作用是將引數的之...
C 複製建構函式被呼叫的情況
複製建構函式被呼叫的情況 1 用類的乙個已知物件去初始化該類的另乙個正在建立的物件 2 採用傳值的呼叫方式時,物件作為函式實參傳遞給函式形參 3 物件作為函式返回值 測試複製建構函式的呼叫 使用靜態量 num 計數表示id include using namespace std static int...
C 三種呼叫拷貝建構函式的情況
三種呼叫拷貝建構函式的情況 1.用類的乙個物件去初始化另乙個物件時 2.函式的形參是類的物件,呼叫函式,進行形參與實參的結合時 3.函式的返回值是類的物件,函式完成呼叫返回時 產生乙個臨時物件 話不多說,測試 如下 include using namespace std class point po...