社区
C++ 语言
帖子详情
effective c++第11
shaAbca
2011-01-02 10:11:57
class Bitmap
{
};
class Widget
{
Bitmap* pb;
}
Widget& Widget::operator=(const Widget& rhs)
{
delete pb; //
Widget& Widget::operator=(const Widget& rhs)
{
Bitmap* pOrig = pb; //
}
int main()
{
Widget w;
w = w; //执行到这里时,上面两个//的意思是?
}
...全文
82
5
打赏
收藏
effective c++第11
class Bitmap { }; class Widget { Bitmap* pb; } Widget& Widget::operator=(const Widget& rhs) { delete pb; // Widget& Widget::operator=(const Widget& rhs) { Bitmap* pOrig = pb; // } int main() { Widget w; w = w; //执行到这里时,上面两个//的意思是? }
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
高性能架构探索
2011-01-03
打赏
举报
回复
要摒弃 自己给自己赋值这一操作
所以更多安全的代码里面都有
if(this == &rhs)这个操作...
yutaooo
2011-01-02
打赏
举报
回复
delete pOrig;的时候,在这个时间点上,pb指向一个新new出来的对象,不在是pOrig指向的那个了。
很简单的,你再想想,估计一下卡住了,呵呵。
shaAbca
2011-01-02
打赏
举报
回复
Widget& Widget::operator=(const Widget& rhs)
{
delete pb;
pb = new Bitmap(*rhs.pb);
return *this;
}
当w = w,(*this).pb = rhs.pb,
delete pb,rhs.pb = ?
pb = new Bitmap(*rhs.pb)时
对它进行解引用所以失败了.pb = ?
Widget& Widget::operator=(const Widget& rhs)
{
Bitmap *pOrig = pb;
pb = new Bitmap(*rhs.pb);
delete pOrig;
return *this;
}
当w = w时.
这代表pOrig = pb = rhs.pb;
pb = new Bitmap(*rhs.pb);
delete pOrig;不是pb = ?吗 rhs.pb也等于?吗
怎么是合法的呢?
yutaooo
2011-01-02
打赏
举报
回复
这大概是在说,对于operator=()的实现,要考虑自己赋值给自己,这种情况。
自己赋值给自己,应该什么都不发生。而,如果不加检测,直接delete pb,则有可能错误的清空自己。
無_1024
2011-01-02
打赏
举报
回复
Widget& Widget::operator=(const Widget& rhs)
{
delete pb; // 删除当前对象空间
Widget& Widget::operator=(const Widget& rhs)
{
Bitmap* pOrig = pb; // 构造一个基类指针指向当前的对象
}
Effect
ive
C++
中文版第三版 高清PDF带目录
根据提供的标题、描述和标签,我们可以确定这与《
Effect
ive
C++
...综上所述,《
Effect
ive
C++
》第三版是一本值得所有
C++
开发者仔细研读的经典之作,它不仅包含了丰富的实践指导,还与时俱进地涵盖了最新的
C++
标准特性。
Effect
ive
C++
第三版高清英文原版
《
Effect
ive
C++
第三版高清英文原版》是一本由Scott Meyers所著的关于
C++
编程实践的书籍。由于文件中提供的部分摘录存在OCR扫描错误和不完整的问题,将尽可能地从中提取知识点并通顺地表达。 首先,从书中的赞誉和...
Effect
ive
C++
中文版(第三版)
《
Effect
ive
C++
中文版(第三版)》是一本深入探讨
C++
编程实践的书籍,该书由Scott Meyers撰写,是
C++
编程领域内的经典之作。书中通过条目式讲解,简洁明了地介绍了55个改善
C++
程序和设计的具体方法。这些方法不仅...
Effect
ive
C++
中文第三版(有书签)
根据提供的信息,“
Effect
ive
C++
中文第三版”这本书是
C++
编程领域的一本经典著作,主要目的是帮助程序员提高
C++
编程技巧、理解最佳实践并避免常见的陷阱。虽然给出的部分内容并没有包含具体的章节信息或具体内容,...
Effect
ive
C++
中文第三版和More
Effect
ive
C++
中文
《
Effect
ive
C++
》和《More
Effect
ive
C++
》是两本由Scott Meyers撰写的经典
C++
编程指南,中文版的第三版与更多实践篇分别涵盖了
C++
编程中的核心概念、最佳实践以及高级技巧。这两本书对于任何想要深入理解
C++
特性和...
C++ 语言
65,186
社区成员
250,526
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章