Effective C++ 学习备忘录一

让自己习惯 C++

  • 条款 01 - 视 C++ 为一个联邦
  • 请记住 C++ 高效编程守则视状况而变化,取决你用 C++ 的哪一部分。
  • 条款 02 - 尽量以 const、enum 、 inline 替换 #define
  • 对于单纯常量,最好以 const对象 或者 enums 替换 #defines
  • 对于形似函数的宏(macros) ,最好改用 inlines 函数替换 #defines
  • 条款 03 - 尽可能使用 const
  • 将某些东西声明为 const 可帮助编译侦测出错误用法。 const 可被施加于于任何作用域内的对象、函数参数、函数返回类型、成员函数本体。
  • 编译器强制实施 bitwise constness,但你编写程序时应该使用“概念上的常量性” conceptual constness。
  • 当 const 和 non-const 成员函数有着实质等价的实现时,令 non-const 版本调用 const 版本可避免代码重复。
  • 条款 04 - 确定对象被使用前已初始化
  • 为内置对象进行手工初始化,因为C++不保证初始化它们。
  • 构造函数最好使用成员初值列(member initialization list),而不要在构造函数本体内使用赋值操作。初值列列出的成员变量,其排列次序应该和它们在 class 中声明的次序相同。
  • 为免除 “跨编译单元之初始化次序” 问题,请以 local static 对象替换 non-static 对象。

推荐阅读更多精彩内容