Effective C++

Effective C++中文版(第三版)学习笔记

part1习惯C++

  • item1C++为一个语言集合
  • item2const,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

  • item32public继承塑造出is-a关系
  • item33避免继承中发生的名称覆盖
  • item34区分接口继承和实现继承
  • item35考虑virtual函数的替代方法
  • item36不要重写继承来的非虚函数
  • item37不要重定义通过继承得到的默认参数值
  • item38通过组合塑造has-ause-a关系
  • item39慎用private继承
  • item40慎用多继承

part7

part8

part9

参考文献&资源链接