Effective C++总结

发布时间 2023-04-25 11:08:07作者: lyjps

1.视C++为一个语言联邦
c++是C、面向对象C++、泛型编程、以及stl的集合。
2.尽量以const\enum\inline替换#define
3.尽可能使用const
4.确定对象使用前已经被初始化
5.了解C++默认生成并调用哪些函数
7.为多态基类声明virtual析构函数
8.别让异常逃离析构函数
9.绝不在构造和析构过程中调用virtual函数
10.令operator=返回一个reference to this
11.在operator=中处理自我赋值
12.复制对象时勿忘记每一个成员
13.以对象管理资源(RAII--智能指针)
14.在资源管理类中小心copying行为
15.在资源管理类中提供堆原始资源的访问--get()函数
16.成对使用new和delete
17.以独立语句将new出来的对象放入智能指针
18.让接口更容易被正确使用,不易被误用
19.设计class犹如设计type
20.以常量引用传递参数替代值传参数
21.必须返回对象时,不要试图返回一个引用
22.将成员变量声明为private
23.用非成员非友元函数替换成员函数--封装性
26.尽量可能延后变量定义出现的时间
27.尽量少做转型动作
28.避免返回handles指向的对象内部成分,
29.为“异常安全”努力是值得的
  基本承诺:异常发生时,程序内的所有对象和数据结构时一致的
  强烈保证:要么完全成功,要么不改变任何外部状态
31.将文件间的编译依赖关系降至最低
  handle+impl;
  接口类+impl;
32.确定public继承表达的时is-a关系
34.区分接口继承和实现继承
  纯虚函数--接口继承
  虚函数--接口继承和默认的实现继承
  非虚函数--指定接口继承和强制实现继承,子类不应该重新定义这类函数
36.绝不重新定义继承而来的non-virtual函数
37.绝不重新定义继承而来的默认参数值
38.通过组合建模has-a 或者 private继承
39.谨慎使用private继承,多使用组合
40.谨慎使用多重继承