免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5669 | 回复: 11
打印 上一主题 下一主题

[C++] 类中的拷贝构造函数和赋值构造函数有啥不同? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-08-17 20:56 |只看该作者 |倒序浏览
一个空类默认的有构造函数、析构函数、拷贝构造函数、赋值函数?不明白后两种有啥不一样?

论坛徽章:
0
2 [报告]
发表于 2011-08-17 21:17 |只看该作者
赋值复制操作符,哪来的构造。

论坛徽章:
2
戌狗
日期:2013-11-06 17:35:36寅虎
日期:2014-10-20 23:12:29
3 [报告]
发表于 2011-08-17 21:18 |只看该作者
运算符可以重载

论坛徽章:
0
4 [报告]
发表于 2011-08-17 21:34 |只看该作者
不知道这样理解对不对啊?
class T
{};
T A("abc");  //构造函数
T B(A);  //拷贝构造函数
T C = B;  //赋值函数

论坛徽章:
0
5 [报告]
发表于 2011-08-17 21:36 |只看该作者
回复 2# 幻の上帝 [
赋值函数,不是赋值构造函数

论坛徽章:
0
6 [报告]
发表于 2011-08-17 22:30 |只看该作者
T C = B;  //这个还是构造。
区分初始化和赋值。

论坛徽章:
0
7 [报告]
发表于 2011-08-17 22:38 |只看该作者
赋值构造对外体现为“运算符重载”,其实现的内容在很多场景下与拷贝构造函数一致。只是使用的场景不一致。

还有其他的,楼下的继续补充。。。

论坛徽章:
0
8 [报告]
发表于 2011-08-18 09:47 |只看该作者
构造函数:是为了“构造”一个对象。(对象之前不存在)
拷贝构造函数:使用一个现成的对象来“构造”另一个对象。(一个对象已经存在,另一个之前不存在)
运算符重载:两个对象都是已经“构造”过的,使用一个对象来重新设置另一个对象。(两个对象都是已经存在的)。

论坛徽章:
0
9 [报告]
发表于 2011-08-18 09:56 |只看该作者
沾楼主的光啦{:2_168:}

论坛徽章:
1
CU十二周年纪念徽章
日期:2013-10-24 15:41:34
10 [报告]
发表于 2011-08-18 10:00 |只看该作者
赋值是对象之前已经存在。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP