`
tibaloga
  • 浏览: 873122 次
文章分类
社区版块
存档分类
最新评论

必须返回对象时,别妄想返回其reference——effective c++学习笔记

 
阅读更多

必须返回对象时,别妄想返回其referenceDon’t try to return a reference when you must return an object.

reference是对象的另一个名称,它指向一个实际存在的对象。

如果reference指向local 对象,则对象在函数返回前销毁。

如果reference指向new 对象,则函数返回的地方需要进行delete操作,给客户带来不便。

特别的:

const Point& operator * (const Point & lhs, const Point & rhs)

{

Point *p = new Point(lhs.GetX(), rhs.GetY());

return p;

}

Point w, x, y, z;

w = x * y * z;

因为有两次*,所以会new两次,但是只可以获得一个new的指针,另外一个new就被泄露掉了。

注意:

1、绝对不要反回pointerreference指向一个local stack对象,或返回reference指向一个heap-allocated对象,或返回pointerreference指向一个local static对象而有可能同时需要多个这样的对象。

分享到:
评论

相关推荐

    Effective C++ 中文版

    条款21:必须返回对象时,别妄想返回其reference 条款22: 将成员变量声明为private 条款23: 宁以non-member、non-friend替换member函数 条款24:若有所参数皆需类型转换,请为此采用non-member函数 条款25:考虑...

    Effective C++(第三版)

    条款21:必须返回对象时,别妄想返回其reference don't try to return a reference when you must return an object. 条款22:将成员变量声明为private declare data members private. 条款23:宁以non-member、non-...

    Effective STL.txt

    《Effective STL中文版:50条有效使用STL的经验》是EffectiveC++的第3卷,被评为“值得所有C++程序员阅读的C++书籍之一”。《Effective STL中文版:50条有效使用STL的经验》详细讲述了使用STL的50条指导原则,并提供了...

    模拟微信拼手气红包C++程序VS源码

    利用VS 2013写的模拟微信拼手气红包的C++程序。这只是一个简单的红包分配算法,不要妄想这会是一个抢红包的工具。

    EffectiveCPlusPlus

    有效的CPlusPlus 视C ++为一种语言联邦 const,枚举,内联 正确使用const ...必须返回对象时,别妄想返回其参考 将成员变量声明为private 宁以非会员,非朋友替换会员函数 若所有参数皆需类型转换,请逐步采用

    零起点学通c++完全版范磊.txt

    《零起点学通C++:多媒体范例教学》知识系统全面,拥有字典般的容量,可随用随查,涵盖指针、面向对象、操作符重载、流、命名空间、模板、异常处理、宏等主流C++开发技术。为了使读者能够活学活用

    《妄想症DeliverMe》特殊存档点攻略.docx

    《妄想症DeliverMe》特殊存档点攻略.docx

    《妄想症DeliverMe》誓言结局攻略.docx

    《妄想症DeliverMe》誓言结局攻略.docx

    《妄想症》疑难攻略.docx

    《妄想症》疑难攻略.docx

    妄想改变世界的最酷少年终于回归

    妄想改变世界的最酷少年终于回归

    《妄想症DeliverMe》替身结局攻略.docx

    《妄想症DeliverMe》替身结局攻略.docx

    初一作文“傻子”的“妄想”.docx

    初一作文“傻子”的“妄想”.docx

    妄想杀手 : Unifineded Killer

    免责声明:该BATCH批处理脚本(以下简称bat)仅用于学习和共享交流,一切因bat导致的此类负面行为应当由用户承担。

    论文研究 - 理论流体力学的妄想

    理论流体力学可能会导致严重的幻想。 本文重点介绍其中三个。 首先,以围绕球体的流动为例,证明了绕流问题的已知潜在解决方案不是唯一的,并且存在非潜在解决方案。 已经获得了围绕球体流动的非... 动量扩散导致必须将

    山海Lua脚本插件

    插件特色功能: 指定位置删除\插入数组元素 数据自动去重 改变数组元素位置 挂载系统目录 改写系统文件权限 遍历目录下的文件\文件夹 静默安装\卸载apk 设置输入法 获取指定app在通知栏消息 打开\关闭WiFi ...

    真正卡盟源码

    该网站程序,是卡盟整站程序,内核是Ecshop。类似平台开钻之类整站程序。 免费开源,平台开钻,自动发货点卡,充值点卡,充值QB,一系列PHP源码 卡盟的源码,快快下载吧,我已经尝试啦

    The VDI Delusion

    The VDI Delusion: Why Desktop Virtualization Failed to Live Up to the Hype, and What the Future Enterprise Desktop Will Really Look Like,桌面虚拟化介绍的架构图书文字版PDF,256页 Amazon相关链接:...

    《愿有人陪你颠沛流离》读书笔记PPT

    这是一套《愿有人陪你颠沛流离》读书笔记PPT,共19页; PPT内容简介: 作者 卢思浩Kevin 是一个做大梦的傻子 是一个笃信自未来的人 是个能在城市里迷路的路痴 是个妄想留住时间的跟时间赛跑的人 是个能为一点微小的...

    libcdio-paranoia:libcdio顶部的CD妄想症

    这是xiph.org的的端口,用于使用libcdio进行CDROM访问。 这样,cdparanoia可以在GNU / Linux以外的平台上运行。 有关cdparanoia的更多信息,请参见 。

    kompot::zany_face:妄想文本生成器

    锅! 此应用程序是基于txt数据集的文本生成器。 基于使用N-gram的马尔可夫链。 测试进行中...

Global site tag (gtag.js) - Google Analytics