网易首页 > 网易号 > 正文 申请入驻

程序设计实习:3.1复制构造函数

0
分享至

复制构造函数 (copy constructor)基本概念:

只有一个参数,即对同类对象的引用。

形如 X::X( X& )或X::X(const X &), 二者选一 后者能以常量对象作为参数 如果没有定义复制构造函数,那么编译器生成默认 复制构造函数。默认的复制构造函数完成复制功能。

class Complex { private : double real,imag; }; Complex c1; //调用缺省无参构造函数 Complex c2(c1);//调用缺省的复制构造函数,将 c2 初始化成和c1一样。

如果定义的自己的复制构造函数, 则默认的复制构造函数不存在。 class Complex { public : double real,imag; Complex(){ } Complex( const Complex & c ) { real = c.real; imag = c.imag; cout << “Copy Constructor called”; } }; Complex c1; Complex c2(c1);//调用自己定义的复制构造函数,输出 Copy Constructor called。

不允许有形如 X::X( X )的构造函数。 class CSample { CSample( CSample c ) { } //错,不允许这样的构造函数 };

复制构造函数起作用的三种情况

1)当用一个对象去初始化同类的另一个对象时。 Complex c2(c1); Complex c2 = c1; //初始化语句,非赋值语句

2)如果某函数有一个参数是类 A 的对象,

那么该函数被调用时,类A的复制构造函数将被调用。

class A

{

public:

A() { };

A( A & a) {

cout << "Copy constructor called" <<endl;

}

};

3)如果某函数有一个参数是类 A 的对象, 那么该函数被调用时,类A的复制构造函数将被调用。 void Func(A a1){ } int main(){ A a2; Func(a2); return 0; } 程序输出结果为: Copy constructor called

4) 如果函数的返回值是类A的对象时,则函数返回时,

A的复制构造函数被调用:

class A

{

public:

int v;

A(int n) { v = n; };

A( const A & a) {

v = a.v;

cout << "Copy constructor called" <<endl;

}

};

3) 如果函数的返回值是类 A的对象时,则函数返回时, A的复制构造函数被调用 : A Func() { A b(4); return b; } int main() { cout << Func().v << endl; return 0; } 输出结果: Copy constructor called 4

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
中国绝不容许!为解除35万亿美债危机,美国欲复刻亚洲金融风暴

中国绝不容许!为解除35万亿美债危机,美国欲复刻亚洲金融风暴

资本百科
2024-04-26 09:26:36
湖人生死战裁判引争议 詹皇明显走步违例漏判 戈登比划示意被无视

湖人生死战裁判引争议 詹皇明显走步违例漏判 戈登比划示意被无视

厝边人侃体育
2024-04-26 11:30:41
谈判再次破裂?我国或将关闭大使馆?外交部提醒:中方公民勿前往

谈判再次破裂?我国或将关闭大使馆?外交部提醒:中方公民勿前往

星辰故事屋
2024-04-22 18:16:54
18日退休工资7530多直接掉到3650元,退休老师声称心里不是滋味

18日退休工资7530多直接掉到3650元,退休老师声称心里不是滋味

动物半岛说说吖
2024-04-25 03:03:59
布林肯再批中国支援俄罗斯,中国也不惯着,直接送他3份大礼

布林肯再批中国支援俄罗斯,中国也不惯着,直接送他3份大礼

绝密探照灯
2024-04-22 15:39:01
上海公务员录用名单火了!他们的孩子回来“为人民服务”了…

上海公务员录用名单火了!他们的孩子回来“为人民服务”了…

非虚构故事
2024-04-23 21:38:35
俄罗斯眼睁睁看着美国弹道导弹要运往乌克兰,却不敢放一枪一炮

俄罗斯眼睁睁看着美国弹道导弹要运往乌克兰,却不敢放一枪一炮

军机图
2024-04-25 17:08:36
反转!吴某凡近况被爆:网友和他共处27天,特殊部位不是“牙签”

反转!吴某凡近况被爆:网友和他共处27天,特殊部位不是“牙签”

娱圈小愚
2024-04-26 09:50:10
用微信给别人转账以后,一定要记得多加一步,否则到时候打水漂了

用微信给别人转账以后,一定要记得多加一步,否则到时候打水漂了

花小萌和你聊情感
2024-04-25 22:25:44
4月25日俄乌:10亿援助发送,美国战略转变,乌克兰反击弥补损失

4月25日俄乌:10亿援助发送,美国战略转变,乌克兰反击弥补损失

山河路口
2024-04-25 16:13:24
限期180天,美要求中国军工企业退出俄市场,否则就全面封锁制裁

限期180天,美要求中国军工企业退出俄市场,否则就全面封锁制裁

环球Talk
2024-04-23 23:47:26
布林肯来华确认“揍你许可证”有效期

布林肯来华确认“揍你许可证”有效期

观察者网
2024-04-26 07:54:59
善恶终有报,“销声匿迹”的宋祖英,已经走上了另一条康庄大道

善恶终有报,“销声匿迹”的宋祖英,已经走上了另一条康庄大道

简读视觉
2024-04-21 13:22:17
广东南粤集团有限公司总经理助理彭军被查

广东南粤集团有限公司总经理助理彭军被查

北青网-北京青年报
2024-04-26 10:37:03
102岁杨振宁庆祝“瓷婚”,翁帆母亲罕露面!墙上百万名画很抢眼

102岁杨振宁庆祝“瓷婚”,翁帆母亲罕露面!墙上百万名画很抢眼

娱乐团长
2024-04-18 21:00:03
布林肯访华,酝酿“惊天计划”,不到24小时,北京迎贵客标准亮了

布林肯访华,酝酿“惊天计划”,不到24小时,北京迎贵客标准亮了

爱钓鱼的阿
2024-04-25 21:21:19
爬山失联女子丈夫发声:妻子主动发送求救信息,请停止恶意揣测

爬山失联女子丈夫发声:妻子主动发送求救信息,请停止恶意揣测

极目新闻
2024-04-26 08:43:23
闹大了!女子质问四川文旅,被一个结子戳8根签签笑死,评论炸了

闹大了!女子质问四川文旅,被一个结子戳8根签签笑死,评论炸了

今日搞笑分享
2024-04-25 22:03:07
妹妹被局长开除后摆地摊,五年后,哥哥调来担任市委书记

妹妹被局长开除后摆地摊,五年后,哥哥调来担任市委书记

乔生桂
2024-04-20 19:44:55
18年南京女孩患癌,医生说活不过6个月,她卖房求生:只为多活1天

18年南京女孩患癌,医生说活不过6个月,她卖房求生:只为多活1天

小金鱼的眼泪
2024-04-25 09:28:39
2024-04-26 15:14:44
爱你雅课
爱你雅课
科普知识,科教视频
213文章数 618关注度
往期回顾 全部

科技要闻

中国车企“五常”激战北京车展

头条要闻

中国女留学生在澳失联在泰国被找到 家人被骗超百万元

头条要闻

中国女留学生在澳失联在泰国被找到 家人被骗超百万元

体育要闻

库里当选最佳关键球员 10项数据联盟第一

娱乐要闻

金靖回应不官宣恋情结婚的原因

财经要闻

24年后再产纯净水 农夫山泉为何要打自己脸

汽车要闻

2024北京车展 比亚迪的自驱力让对手紧追猛赶

态度原创

游戏
手机
本地
房产
公开课

3DS和WiiU在线服务关闭后仍有玩家坚守打死不离线

手机要闻

OPPO旧机上新配色,vivo新机入网,这哥俩商量好的吗?

本地新闻

蛋友碰碰会空降西安!5.1山海境等你!

房产要闻

涉及黄埔、番禺、增城!广州新一轮大规模征地启动

公开课

睡前进食会让你发胖吗?

无障碍浏览 进入关怀版