社区
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=函数
...全文
134
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
Effect
ive
C++
中文版(word)
Effect
ive
C++
中文版(word)版,内容和网上的都一样,但如果你想打印出来,或不想用其他的阅读器,这个是你的首选,已排版。
Effect
ive
C++
中文版
世界顶级
C++
大师Scott Meyers成名之作 ,自己做了目录拿出来分享哈
Effect
ive
C++
2e
需要的自己下 哈哈
Effect
ive
C++
.doc
Scott Meyers 很经典的书 可编辑word版
C++ 语言
65,184
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章