C 複製建構函式被呼叫的三種情況

2021-10-01 22:53:34 字數 1118 閱讀 5950

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...