Skip to content

xzwsloser/Effective-C-

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Effective C++阅读笔记

  • 如下是本人阅读Effective C++时所做的笔记
chapter1 让自己习惯C++
条款01 视C++为一个语言联邦
条款02 尽量使用 const enuminline替换#define
条款03 尽可能使用 const 关键字
条款04 确定对象使用前已经初始化
chapter2 构造/析构/赋值运算符
条款05 了解C++默认编写并且调用了那些函数
条款06 如果不想使用编译器自动生成的函数,就应该明确拒绝
条款07 为多态基类声明virtual析构函数
条款08 请别让异常逃离析构函数
条款09 绝不要在构造和析构的过程中调用virtual函数
条款10 operator返回一个reference to *this
条款11 operator=中处理自我赋值操作
条款12 复制对象的时候不要忘记它的每一个成分
chapter3 资源管理
条款13 以对象管理资源
条款14 在资源管理类中小心copying行为
条款15 在资源管理类中提供对于原始资源的访问
条款16 成对使用newdelete时采取相同的形式
条款17 以独立语句将newed对象置入到智能指针中
chapter4 设计与声明
条款18 让接口被正确使用,不易被误用
条款19 设计class犹如设置type
条款20 宁以pass-by-reference-to-const替代pass-by-value
条款21 必须返回对象的时候,别妄想返回其reference
条款22 将成员声明为private
条款23 宁以non-member,non-friend替换member函数
条款24 若所有的参数都需要类型转换,请为此采用non-member函数
条款25 考虑写出一个不抛出异常的swap函数
chapter5 实现
条款26 尽可能延后变量定义式出现事件
条款27 尽量少做转型动作
条款28 避免返回handles指向对象的内部成分
条款29 为"异常安全"而努力是值得的
条款30 透彻了解inlining的里里外外
条款31 将文件之间的编译依赖关系下降到最低
chapter6 继承与面向对象设计
条款32 确定你的public继承塑模出is-a关系
条款33 避免遮掩继承而来的名称
条款34 区分接口继承与实现继承
条款35 考虑virtual函数之外的选择
条款36 绝不重新定义继承而来的non-virtual函数
条款37 绝不重新定义继承而来的缺省参数
条款38 通过复合塑模出has-a或者"根据某物实现出"
条款39 明智而审慎地使用private继承
条款40 明智而审慎地使用多重继承
chapter7 模板与泛型编程
条款41 了解隐式接口和编译时期多态
条款42 了解typename的双重意义
条款43 学习处理模板化基类内的名称
条款44 将与参数无关的代码抽离templates
条款45 运用成员函数模板接受所有兼容类型
条款46 需要类型转换的时候请为模板定义非成员函数
条款47 请使用traits classes表现类型信息
条款48 认识template元编程
chapter8 定制newdelete
条款49 了解new-handler的行为
条款50 了解newdelete的合理替换实际
条款51 编写newdelete时需要固守常规
条款52 placement new也要写placement delete
chapter9 杂项讨论
条款53 不要忽略编译器的警告
条款54 让自己熟悉包括TR1在内的标准程序库
条款55 让自己熟悉Boost

About

Effective C++阅读笔记

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published