`
ijavagos
  • 浏览: 1249913 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

必须返回对象时,别妄想返回其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**:封装是面向对象的核心原则,私有成员变量可保护对象的...

    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-...

    C语言和C++的区别【完整版】

    在学习C++时,需要注意一些误区,例如C++并非完全面向对象化的语言,真正的面向对象化的语言恐怕只有Java才算得上。学习C++需要注意基本概念的重要性,例如变量类型的重要性和对象模型的设计。 在学习C++时,需要...

    沟通的误区——《程序员职场第一课》

    案例1.9提出,当面对批评时,我们不应成为妄想狂,而应理性看待。比如“一屁崩过江”的案例,可能是在提醒我们,过于敏感会让我们失去客观分析问题的能力。为避免成为受害者,我们需要学会自我反思,理解批评的真正...

    5守株待兔——小学生ppt学习课件

    从给定的小学生PPT学习课件中,我们可以提炼出以下几个关键知识点: ### 1. 寓言故事《守株待兔》的理解 - **故事背景**:故事来源于中国古代的一则寓言,讲述了一个种田人在田间偶遇一只撞死在树桩上的兔子后发生...

    1守株待兔——学生学习课件

    ### 守株待兔——学生学习课件知识点总结 #### 一、寓言与《守株待兔》 - **寓言定义**:寓言是一种通过比喻性故事来表达深刻道理的文学形式,通常简短而富有哲理。故事中的角色可以是人,也可以是动物或其他非...

    EffectiveCPlusPlus

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

    3寓言两则——小学生学习课件

    ### 3寓言两则——小学生学习课件 #### 寓言故事的教育意义 寓言作为一种文学形式,以其简短精炼的故事传达深刻的人生哲理和社会道德观念,深受人们的喜爱,尤其对于儿童来说,寓言故事更是重要的启蒙教材之一。...

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

    在《妄想症DeliverMe》这款游戏中,玩家将面临多个分支选择和存档点,这些选择和点位在很大程度上决定了游戏的走向和最终结局。游戏中的特殊存档点更是关键,正确利用这些存档点不仅能加快游戏进程,还能帮助玩家...

    基于JavaScript的妄想山海-混沌风景点地图设计源码

    该项目是一款采用JavaScript编写的“妄想山海-混沌风景点”地图设计源码,总计包含29个文件,涵盖10个PNG图片、6个JavaScript脚本、4个GeoJSON地理数据文件、3个CSS样式表、1个editorconfig配置文件、1个gitignore...

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

    "《妄想症DeliverMe》誓言结局攻略" 《妄想症DeliverMe》是一款日本视觉小说游戏,游戏中有多个结局,需要玩家通过特定的选择和操作来解锁不同的结局。本攻略将指导玩家如何解锁不同的结局,包括誓言结局和逃路结局...

    3.主动拒绝烟酒与毒品第2课时——小学生学习课件

    ### 主动拒绝烟酒与毒品——小学生学习课件知识点总结 #### 一、香烟的危害 1. **化学成分分析**: - 香烟中含有数百种化学物质,其中包括尼古丁、焦油、一氧化碳等有害成分。 - 尼古丁是一种高度成瘾性的物质,...

    自己学习的一些编程感悟

    在编程的世界里,每个程序员都有一段属于自己的学习历程,其中充满了感悟与心得。这篇分享主要探讨了几个关键的学习要点,对于初学者尤其有指导意义。 首先,理解语言的含义至关重要。这里提到的语言不仅包括人类...

    广东省2015年公共卫生执业医师——学校青少年卫生学考试试题.pdf

    16. 环境卫生学研究对象:涉及自然环境和生活环境,关注人类健康与环境之间的关系。 17. 报告涂阳患病率和菌阳患病率的意义:主要是为了监控传染性结核病的分布和控制情况。 18. 近致癌物:是指能诱导肿瘤发生但不...

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

    从这篇初一学生的文章《“傻子”的“妄想”》中,我们可以提炼出几个重要的IT相关知识点,尽管原文更多地涉及人文和社会学领域,但这里尝试将其转换为与信息技术相关的概念。 ### 1. 梦想与创新 #### 技术背景 在...

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

    《妄想症DeliverMe》是一款心理剧情向的游戏,其中替身结局的攻略涉及到玩家对游戏中角色好感度的微妙操控。在游戏中,好感度并非直接显示,玩家需要通过角色的反应来判断。尤其重要的是,守护者和潜意识的好感度呈...

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

    然而,Boyan对海洋塑料垃圾的关注使他做出了一个惊人的决定——辍学并致力于海洋垃圾清理项目。这个决定尽管不被当时大多数人看好,但却体现了他为实现梦想所展现出的执着和决心。Boyan首次意识到海洋垃圾问题是在一...

    《妄想症》疑难攻略.docx

    很抱歉,但根据提供的文件信息,这似乎是一个关于游戏《妄想症》的攻略文档,包含各种剧情选择和不同结局的触发条件。然而,标签指定的是"安全管理",这与游戏攻略内容不符。如果需要关于安全管理的专业知识,例如...

Global site tag (gtag.js) - Google Analytics