社区
C++ 语言
帖子详情
Effective C++的一个问题,关于拷贝构造函数和operator=
Snow_1980
2005-03-18 02:13:27
在条款11里有这样一个例子
String a("Hello");
{
String b("World");
....
b = a;
}
String c = a;
为什么b = a执行的是默认的operator=函数,而String c = a执行的是拷贝构造函数?我觉的两个好像都是用的operator=函数
...全文
141
6
打赏
收藏
Effective C++的一个问题,关于拷贝构造函数和operator=
在条款11里有这样一个例子 String a("Hello"); { String b("World"); .... b = a; } String c = a; 为什么b = a执行的是默认的operator=函数,而String c = a执行的是拷贝构造函数?我觉的两个好像都是用的operator=函数
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
oyljerry
2005-03-18
打赏
举报
回复
拷贝构造函数,定义一个新的对象时,用已存在的对象进行初始化
赋值则是,为一个存在的对象赋予值
zjraycj
2005-03-18
打赏
举报
回复
拷贝构造函数:在声明时用一个已存在的类对象进行初始化
赋值重载则是为一个已存在的对象(也就是说开始已经被定义或声明过的对象)重新赋予另一个值的过程
langzi8818
2005-03-18
打赏
举报
回复
UP,呵呵~
kobefly
2005-03-18
打赏
举报
回复
楼上所言极是
一个是在定义的时候初始化
而另一个是一个过程中的赋值
这是不一样的
Salam2001
2005-03-18
打赏
举报
回复
总结一下就是:
复制构造函数用于新声明对象时的初始化操作.
operator=() 用于一般的赋值操作.
nickshen
2005-03-18
打赏
举报
回复
String c = a;的意思就是以a为初值构造出c来,所以是拷贝构造函数
如果string c; c = a;那这里就是调用的operato=
effect
ive
c++
笔记1
本笔记总结了
Effect
ive
C++
的第1到第11条款,涵盖了
C++
语言的多个方面,包括构造函数、
拷贝构造函数
、拷贝赋值函数、const关键字、enum、inline函数、定义域、static变量、初始化、编译器生成的函数、拷贝控制、多态...
Effect
ive
C++
中文版(word)
拷贝构造函数
和赋值操作符是
C++
中处理对象复制的关键,特别是对于包含动态内存的类,正确实现可以防止深浅拷贝
问题
。 12. **尽量使用初始化而不要在构造函数里赋值** 初始化列表允许在构造函数中直接设置成员...
Effect
ive
C++
中文版
-
拷贝构造函数
、赋值运算符和析构函数应该遵循“三五法则”,确保对象的深拷贝和浅拷贝操作正确无误。 以上只是《
Effect
ive
C++
中文版》中众多知识点的冰山一角。这本书通过具体实践案例和详尽的解释,将复杂的...
Effect
ive
C++
2e
2. **构造与析构**:书中详细讲解了构造函数和析构函数的使用,包括初始化列表(initializer lists)、无参数构造函数、
拷贝构造函数
和移动构造函数,以及如何避免资源泄漏(resource leaks)。 3. **运算符重载**...
Effect
ive
C++
.doc
条款11指出需要动态分配内存的类应有
拷贝构造函数
和赋值操作符,以确保正确复制。条款12强调初始化优于赋值,条款13规定初始化列表应按照成员声明的顺序进行。条款14建议基类有虚析构函数以支持多态销毁。条款15和16...
C++ 语言
65,199
社区成员
250,520
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章