拷貝建構函式的引數是本類物件的引用。
拷貝建構函式的呼叫有以下三種情形:
(1)用類的乙個物件去初始化另乙個物件時;
(2)當函式的形參是類的物件時(值傳遞),如果是引用傳遞則不會呼叫;
(3)當函式的返回值是類的物件或引用時。
拷貝建構函式與賦值操作符的區別:
拷貝建構函式的作用是完成對未初始化儲存區的初始化,而賦值操作符則是處理乙個已經存在的物件。
對乙個物件賦值,當它第一次出現時,呼叫拷貝建構函式,以後每次出現,都呼叫賦值操作符。
#include usingnamespace
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 結果 結果 注意 只有把物件用值傳遞時,才會呼叫複製建構函式,如果傳遞引用,則不會呼叫複製建構函式。注意 在...