Effective C++
Effective C++中文版(第三版)学习笔记
part1习惯C++
- item1视C++为一个语言集合
- item2用const,enum,inline代替#define
- item3多用const
- item4确保对象在使用前已被初始化
part2构造/析构/赋值运算
- item5了解C++类中自动生成和调用的函数
- item6若不想使用编译器自动生成的函数,要显式拒绝
- item7为多态基类声明virtual析构函数
- item8不要让析构函数抛出异常
- item9不要在构造和析构函数中调用virtual函数
- item10自定义赋值操作符(operator=)要返回*this的引用
- item11注意operator=的“自我赋值”
- item12对象进行复制时需要完整拷贝
part3资源管理
- item13使用对象来管理资源
- item14注意资源管理类中的拷贝行为
- item15在资源管理类中提供对原始资源的访问git
- item16使用new/delete形式要对应
- item17用单独的语句来创建智能指针
part4设计与声明
- item18让接口不容易被误用
- item19把类当作类型来设计
- item20用常量引用传递代替值传递
- item21不要在需要返回对象时返回引用
- item22类的数据成员声明为private
- item23用非成员且非友元函数来替换成员函数
- item24如果参数要进行类型转换,该函数不能作为成员函数
- item25考虑写一个高效的swap函数
part5实现
- item26尽可能推迟变量定义
- item27减少类型转换的使用
- item28避免返回指向对象内部成员的句柄
- item29保证代码的异常安全性
- item30透彻了解inline函数
- item31最小化文件之间的编译依赖关系
part6
- item32让public继承塑造出is-a关系
- item33避免继承中发生的名称覆盖
- item34区分接口继承和实现继承
- item35考虑virtual函数的替代方法
- item36不要重写继承来的非虚函数
- item37不要重定义通过继承得到的默认参数值
- item38通过组合塑造has-a或use-a关系
- item39慎用private继承
- item40慎用多继承
part7
part8
part9
参考文献&资源链接