永发信息网

拷贝构造函数

答案:2  悬赏:30  手机版
解决时间 2021-08-12 04:40
  • 提问者网友:最美的风景
  • 2021-08-11 07:37

拷贝构造函数与构造函数的区别

拷贝构造函数如何定义 怎么才能不和构造函数冲突

最佳答案
  • 五星知识达人网友:北城痞子
  • 2021-08-11 08:27
拷贝构造函数是构造函数的一种啊,并不存在冲突,它们的包含和被包含的关系。至于拷贝构造函数的用途,是在你产生临时对象,或者在复杂的复制语句当中的时候,代码会自动调用该函数,产生出一个对象供后面代码复制使用的。你没有的话,那么产生这个临时对象的时候就会出错,当然,你的代码只要不产生临时对象,拷贝构造函数要不要都无所谓了。并且,如果你的代码没有显示的添加构造函数,编译器会自动帮你生成一个默认的构造函数,一个拷贝构造函数和一个析构函数的。但是这些都是浅拷贝,遇到指针数据成员,就有出错的潜在危险了。
全部回答
  • 1楼网友:猎心人
  • 2021-08-11 08:58
#include "iostream.h" class CPoint { protected:     double x;     double y; public:     CPoint(double x=0, double y=0);     void SetPoint(double x,double y);     void OutPut();     CPoint(CPoint& point); }; void CPoint::OutPut() {     cout<<x<<":"<<y<<endl; }    CPoint::CPoint(double x, double y) {     this->x=x;     this->y=y; } void CPoint::SetPoint(double x,double y)//拷贝构造函数,此处用的是深拷贝 {     this->x=x;     this->y=y; } CPoint::CPoint(CPoint& point) {     cout<<"拷贝构造函数被调用"<<endl;     point.x=x;     point.y=y; } int main() {     CPoint p1(1,1);     p1.OutPut();     CPoint p2(p1);     return 0; }    给你一个例子吧
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯