社区
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=函数
...全文
157
6
打赏
收藏
Effective C++的一个问题,关于拷贝构造函数和operator=
在条款11里有这样一个例子 String a("Hello"); { String b("World"); .... b = a; } String c = a; 为什么b = a执行的是默认的operator=函数,而String c = a执行的是拷贝构造函数?我觉的两个好像都是用的operator=函数
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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++
中文版
-
拷贝构造函数
、赋值运算符和析构函数应该遵循“三五法则”,确保对象的深拷贝和浅拷贝操作正确无误。 以上只是《
Effect
ive
C++
中文版》中众多知识点的冰山一角。这本书通过具体实践案例和详尽的解释,将复杂的...
Effect
ive
C++
8. **为需要动态分配内存的类声明
一个
拷贝构造函数
和
一个
赋值操作符**:
拷贝构造函数
用于创建对象的副本,赋值操作符用于将
一个
对象的值复制到另
一个
对象。对于包含动态分配内存的类,这两个函数必须正确处理内存...
Effect
ive
C++
条款12:构造/析构/赋值运算之(复制对象时勿忘其每
一个
成份)
我们在前面文章已经介绍了,如果类没有手动声明
拷贝构造函数
或拷贝赋值运算符,那么编译器会为我们自动生成这两个成员,并且它们的行为是:将被拷贝的对象的所有成员做一份拷贝 二、复制对象时确保复制所有成员 下面...
C++
拷贝构造函数
和
operator
=
1
拷贝构造函数
参数的特点对于
一个
类X,如果
一个
构造函数的第
一个
参数是下列之一:a) X&b) const X&c) volatile X&d) const volatile X&因此 X::X(X&, int=1); //是
拷贝构造函数
并且类中可以存在超过
一个
拷贝构造...
C++ 语言
65,211
社区成员
250,518
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章