- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* *
* *
Effective C++阅读笔记
Effective C++阅读笔记 1
原则 3:尽可能使用 const 5
原则 5:了解 C++默默编写并调用哪些函数 7
原则 6:若不想使用编译器自动生成的函数,就应该明确拒绝 9
原则 7:为多态基类声明 virtual 析构函数 12
原则 8:别让异常逃离析构函数 16
原则 9:绝不在构造和析构过程中调用virtual 函数 17
原则 10:令 operator=返回一个 reference to *this 20
原则 11:在 operator=中处理“自我赋值” 20
原则 12:复制对象时勿忘其每一个成分 22
原则 13:以对象管理资源 23
原则 14:在资源管理类中小心 COPYING 行为 25
原则 15:在资源管理类中提供对原始资源的访问 26
原则 16:成对使用 new 和 delete 时要采用相同形式 28
原则 17:以独立语句将 newed 对象置入智能指针 29
原则 18:让接口容易被正确使用,不易被误用 30
原则 19:设计 class 犹如设计 type 31
原则 20:宁以引用传递代替值传递 32
原则 21:必须返回对象时,别妄想返回其引用 33
原则 22:将成员变量声明为 private 34
原则 23:宁以非 member、非 friend 替换 member 函数 36
原则 24:若所有参数皆需要类型转换,请为此采用非member 函数 37
原则 25:考虑写出一个不抛出异常的 swap 函数 39
原则 26:尽可能延后变量定义式的出现时间 42
原则 27:尽量少做类型转换动作 43
原则 28:避免返回 handles 指向对象的内部成分 46
原则 29:为“异常安全”而努力是值得的 48
原则 30:透彻了解 inline(内联)的里里外外 52
原则 31:将文件间的变异依存关系降至最低 55
原则 32:确定你的 public 继承塑造出了 IS-A 关系 58
条款 33:避免屏蔽继承而来的名字 59
原则 34:区分接口继承和实现继承 60
原则 35:考虑 virtual 函数以外的其他选择 63
原则 36:决不能重新定义继承而来的非 virtual 函数 67
原则 37:绝不重新定义继承而来的缺省参数值 69
原则 38:通过复合塑造出 HAS-A 关系或者根据某物实现出来 71
原则 39:明知而审慎地使用 PRIVATE 继承 72
原则 40:明智而审慎地使用多重继承 78
原则 41:了解隐式接口和编译期多态 81
原则 42:了解 typename 的双重意义 82
原则 43:学习处理模版化基类内的名称 84
原则 44:将与参数无关的代码抽离 templates 86
原则 45:运用成员函数模版接受所有兼容类型 88
原则 46:需要类型转换时请为模版定义非成员函数 90
原则 47:请使用 traits classes 表现类型信息 92
原则 48:认识 template 元编程 96
原则 49:了解 new-handler 的行为 98
原则 50:了解 new 和 delete 的合理替换时机 102
条款 51:编写 new 和 delete 时需固守常规 104
原则 52:写了 placement new 也要写 placement delete 106
原则 54:不要忽视编译器的警告 108
原则 54:让自己熟悉包括 TR1 在内的标准程序库 109
原则 55:让自己熟悉 Boost 110
本来是写在百度空间的,但是不知道咋回事百度博客中图片看不到了,所以百度博客的不稳定性可见一斑。于是我决定将我的领会和感受写在自己的云盘里面。虽好也弄个目录啥的,最后再整车成 PDF 格式的。这个标准我就参考我研究生期间论文的格式吧。
原则 3:尽可能使用 const
《Effective C++》里面第 3 条原则是尽量使用 const。其原因是防止无意中更改而本来不应该更改的变量。
本条款也提到 const 成员函数的重要性,原因之一就是只有 const 函数才能用来操纵 const 对象。
而所谓 const 对象就像下图所示的这样:
有的时候会遇到在 const 函数中更改非 const 成员变量的情况,这个时候就要用到 mutable 关键字了。如果一个成员变量被 mutable 修饰,那么它在const 函数中仍然可以被修改,但是前提是该成员变量是非 const 成员。
还有一种情况就是为了防止代码重复,比如两个
文档评论(0)