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

2022-04-28 00:46:50 字數 851 閱讀 4489

c++中的建構函式分為建構函式,和複製建構函式,相比於建構函式,複製建構函式使用更加方便,快捷。建構函式可以有多個,二複製建構函式只能有乙個,因為複製建構函式的引數

只能是當前類的乙個物件,參數列是固定的,無法過載,若使用者沒有定義自己的輔助建構函式,系統會自動生成乙個複製建構函式,其作用是將引數的之賦予當前的物件.若使用者自己定義了複製建構函式,系統則不會生成預設複製建構函式。使用者自己定義的複製建構函式功能可以自己構造,不一定執行複製的功能。

複製建構函式同建構函式的功能大體相同·,卻又有不同之處,下面介紹複製建構函式在3中情況下的呼叫

1.當用乙個物件去初始化同類的另乙個物件時,會引發複製建構函式的呼叫

以下兩條語句都會導致複製建構函式的呼叫

complex c1(c2);

complex c1=c2;

這兩條語句時等價的,其中第二句是初始化語句,不是賦值語句

下面這一條語句不會呼叫複製建構函式

complex c1,c2;

c1=c2;

2.作為形參的物件,使用複製建構函式初始化的

以下語句可以證明

```

#includeusing namespace std;

class a;//建構函式

a(a&a)//複製建構函式

;//建構函式

a(a&a)//複製建構函式

};a a(4);

a func()//普通函式

int main()

```!(

##以上三種情況是比較常見的複製建構函式被呼叫的例子

歡迎討論,斧正

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

class point point point p 複製建構函式 int getx int gety private int x,y point point point p int main 結果 結果 注意 只有把物件用值傳遞時,才會呼叫複製建構函式,如果傳遞引用,則不會呼叫複製建構函式。注意 在...

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

複製建構函式被呼叫的情況 1 用類的乙個已知物件去初始化該類的另乙個正在建立的物件 2 採用傳值的呼叫方式時,物件作為函式實參傳遞給函式形參 3 物件作為函式返回值 測試複製建構函式的呼叫 使用靜態量 num 計數表示id include using namespace std static int...

C 三種呼叫拷貝建構函式的情況

三種呼叫拷貝建構函式的情況 1.用類的乙個物件去初始化另乙個物件時 2.函式的形參是類的物件,呼叫函式,進行形參與實參的結合時 3.函式的返回值是類的物件,函式完成呼叫返回時 產生乙個臨時物件 話不多說,測試 如下 include using namespace std class point po...