拷貝構造函數
其形參是本類的對象引用,其作用是使一個已經存在的對象(由拷貝構造函數參數指定的對象)去初始化一個新的同類對象。
系統默認一個拷貝構造函數,
默認的拷貝構造函數的功能是把初始值對象的每個數據成員值都復制到新建立的對象中。
class calssname
{ public :
類名(形參表); //構造函數
類名(類名 &對象名); //拷貝構造函數
};
類名::類名(類名 & 對象名) //拷貝構造函數的實現
{ 函數體
}
例如:
class Point
{ public:
Point(int xx=0,int yy=0) {X=xx; Y=yy; } // 構造函數
Point( Point &P);
int GetX(){retrun x;}
int GetY () {return y}
private:
int X,int Y;
};
Point ::Point (Point &P)
{ X=P.x;
Y=P.y;
}
//構造函數在倉健對象時被調用,而拷貝構造函數有三種情況
1。 當一個類的對象去初始化該類的另一個對象時
int main(void)
{ Point A(1,2);
Point B(A);
cout<<B.GetX()<<endl;
return 0;
}
如果函數的形參是類的對象,調用函數是,進行形參和實參的結合時
void F(Point p)
{ cout<<p.GetX();
}
int main()
{ Point A(1,2);
F(A);
return 0;
}
3. 如果函數的返回值是類的對象,函數執行完成返回調用者時
Point g()
{ Point A(1,2)
return A;
}
int main()
{ Point B;
B=g();
return 0;
}
其形參是本類的對象引用,其作用是使一個已經存在的對象(由拷貝構造函數參數指定的對象)去初始化一個新的同類對象。
系統默認一個拷貝構造函數,
默認的拷貝構造函數的功能是把初始值對象的每個數據成員值都復制到新建立的對象中。
class calssname
{ public :
類名(形參表); //構造函數
類名(類名 &對象名); //拷貝構造函數
};
類名::類名(類名 & 對象名) //拷貝構造函數的實現
{ 函數體
}
例如:
class Point
{ public:
Point(int xx=0,int yy=0) {X=xx; Y=yy; } // 構造函數
Point( Point &P);
int GetX(){retrun x;}
int GetY () {return y}
private:
int X,int Y;
};
Point ::Point (Point &P)
{ X=P.x;
Y=P.y;
}
//構造函數在倉健對象時被調用,而拷貝構造函數有三種情況
1。 當一個類的對象去初始化該類的另一個對象時
int main(void)
{ Point A(1,2);
Point B(A);
cout<<B.GetX()<<endl;
return 0;
}
如果函數的形參是類的對象,調用函數是,進行形參和實參的結合時
void F(Point p)
{ cout<<p.GetX();
}
int main()
{ Point A(1,2);
F(A);
return 0;
}
3. 如果函數的返回值是類的對象,函數執行完成返回調用者時
Point g()
{ Point A(1,2)
return A;
}
int main()
{ Point B;
B=g();
return 0;
}