- 1、本文档共197页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
条款6析构函数里对指针成员调用delete
前言 3
導讀 5
第一章 从C转向C++ 13
条款1:尽量用const和inline而不用#define 14
条款3:尽量用new和delete而不用malloc和free 16
条款4:尽量使用c++风格的注释 17
第二章 内存管理 18
条款5:对应的new和delete要采用相同的形式 19
条款6:析构函数里对指针成员调用delete 19
条款7:预先准备好内存不够的情况 20
条款8: 写operator new和operator delete时要遵循常规 27
条款9: 避免隐藏标准形式的new 30
条款10: 如果写了operator new就要同时写operator delete 32
第三章 构造函数,析构函数和赋值操作符 39
条款11: 为需要动态分配内存的类声明一个拷贝构造函数和一个赋值操作符 39
条款12: 尽量使用初始化而不要在构造函数里赋值 42
条款13: 初始化列表中成员列出的顺序和它们在类中声明的顺序相同 46
条款14: 确定基类有虚析构函数 48
条款15: 让operator=返回*this的引用 52
条款16: 在operator=中对所有数据成员赋值 55
条款17: 在operator=中检查给自己赋值的情况 59
第四章 类和函数:设计与声明 64
条款18: 争取使类的接口完整并且最小 65
条款19: 分清成员函数,非成员函数和友元函数 68
条款20: 避免public接口出现数据成员 73
条款21: 尽可能使用const 74
条款22: 尽量用“传引用”而不用“传值” 81
条款23: 必须返回一个对象时不要试图返回一个引用 84
条款24: 在函数重载和设定参数缺省值间慎重选择 88
条款25: 避免对指针和数字类型重载 91
条款26: 当心潜在的二义性 94
条款27: 如果不想使用隐式生成的函数就要显式地禁止它 97
条款28: 划分全局名字空间 98
第五章 类和函数: 实现 103
条款29: 避免返回内部数据的句柄 103
条款30: 避免这样的成员函数:其返回值是指向成员的非const指针或引用,但成员的访问级比这个函数要低 108
条款31: 千万不要返回局部对象的引用,也不要返回函数内部用new初始化的指针的引用 110
条款32: 尽可能地推迟变量的定义 113
条款33: 明智地使用内联 115
条款34: 将文件间的编译依赖性降至最低 120
第六章 继承和面向对象设计 128
条款35: 使公有继承体现 是一个 的含义 129
条款36: 区分接口继承和实现继承 134
条款37: 决不要重新定义继承而来的非虚函数 141
条款38: 决不要重新定义继承而来的缺省参数值 143
条款39: 避免 向下转换 继承层次 145
条款40: 通过分层来体现 有一个 或 用...来实现 153
条款41: 区分继承和模板 155
条款42: 明智地使用私有继承 159
条款43: 明智地使用多继承 164
条款44: 说你想说的;理解你所说的 177
第七章 杂项 178
条款45: 弄清C++在幕后为你所写、所调用的函数 178
条款46: 宁可编译和链接时出错,也不要运行时出错 182
条款47: 确保非局部静态对象在使用前被初始化 185
条款48: 重视编译器警告 188
条款49: 熟悉标准库 188
条款50: 提高对C++的认识 194
前言
這本書是多年來我對專業程式員所做的C++ 教學課程下的一個自然產物。我發現,大部份學生在一個星期的密集訓練之後,即可適應這個語言的基本架構,但要他們「將這些基礎架構以有效的方式組合運用」,我實在不感樂觀。於是我開始嘗試組織出一些簡短、明確、容易記憶的準則,做為C++ 高實效性程式開發過程之用。那都是經驗豐富的C++ 程式員幾乎總是會奉行或幾乎肯定要避免的一些事情。
我最初的興趣在於整理出一些可被某種「lint-like 程式」施行的規則,最後我甚至領導一個計劃,研究某種可將C++ 原始碼中違反使用者指定條件之處檢驗出來的工具(你可以在Effective C++ 網站上找到此研究的一份概要報告)。不幸的是在我尚未完成其完整原型之前,這個研究計劃便結束了。幸運的是,目前市面上已有這類C++ 檢驗工具(商品),而且不只一個。
雖然我最初的興趣是在研究可被(某種工具)自動實施的程式設計準則,但我很快瞭解到那個研究方向的侷限性。優秀的C++ 程式員所奉行的準則,多數都難以「公式化」;要不就是雖然它們有許多重要的例外情況,卻被程式員盲目地奉行不渝。這使我念頭一轉:某些東西雖然不比電腦程式精準,但仍能比一本泛泛的C++ 教科書更集中火力,更打到重點。這個念頭的結果就是你手上這本書:
您可能关注的文档
最近下载
- 风力发电机模拟软件:FAST二次开发_(3).FAST模拟器架构解析.docx VIP
- 语文三年级下册专项训练:阅读.doc VIP
- 金属制品项目企业经营战略方案.docx
- 人工智能导论课件 第十三章 类脑智能.pptx VIP
- 招聘面试题大全.doc VIP
- 北师大版小学数学六年级下册各单元思维导图.pdf
- 中考物理常考估测汇总及估测训练100题(模拟50题+真题50题)(原卷版).docx VIP
- 岩壁梁悬臂模板施工方案.docx VIP
- 碳纤维片材加固混凝土结构技术规程(2007年版) CECS146:2003.pdf VIP
- 新人教版(2025)小学三年级英语下册第六单元Unit 6 单元整体教学设计.docx VIP
文档评论(0)