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

2022-08-23 13:18:11 字數 624 閱讀 1511

拷貝建構函式的引數是本類物件的引用。

拷貝建構函式的呼叫有以下三種情形:

(1)用類的乙個物件去初始化另乙個物件時;

(2)當函式的形參是類的物件時(值傳遞),如果是引用傳遞則不會呼叫;

(3)當函式的返回值是類的物件或引用時。

拷貝建構函式與賦值操作符的區別:

拷貝建構函式的作用是完成對未初始化儲存區的初始化,而賦值操作符則是處理乙個已經存在的物件。

對乙個物件賦值,當它第一次出現時,呼叫拷貝建構函式,以後每次出現,都呼叫賦值操作符。

#include using

namespace

std;

class

point

point(point&p);

int getx()

int gety()

private

:

intx,y;

};point::point(point&p)

//形參為point類物件的函式

void

fun1(point p)

//返回值為point類物件的函式

point fun2()

intmain()

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

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

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

三種情況如下 1.物件作為函式引數,以值傳遞的方式傳入函式體。2.物件作為函式返回值,以值傳遞的方式從函式反回。3.物件用於給另乙個物件進行初始化。下面通過例題來解釋上面的三種情況 例題如下 問題 上面的結果輸出是?答案如下 解析 1 首先從 b t1 play 5 開始 play 5 呼叫了建構函...

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

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