Effective C++_读书笔记_101

让自己习惯C++

条款01

视C++为一个语言联邦

包含:

  • C语言
  • C with Class
  • Template C++/模板元编程
  • STL

条款02

以const,enum,inline替代#define

其中enum用在编译器期需要常量时,即"the enum hacks",原理是枚举可充当int,注意enum无法取地址或引用
inline函数用于替代形似函数的宏(macros)

条款03

尽可能使用const

注意const与指针的位置作用
const可与指针/迭代器/指针对象/迭代器对象/引用对象/函数参数/返回类型/local变量/成员函数合作
当const与non-const成员函数有实质等价实现时,另non-const版本调用const版本可避免重复,期间涉及到转型

思考:
写的每一个函数,都应对参数和输出进行思考,应该换成const吗?应该用引用还是指针还是值?

条款04

确定对象被使用前已先被初始化

核心:对内置型对象要进行手工初始化
注意:构造函数最好使用成员初始阵列,不要在构造函数内使用赋值操作符,原因是后者徒增了一次成员构造函数调用;初值阵列顺序要和声明中的顺序相同.
对于"跨编译单元之初始化次序"问题,应以local static对象替代non-local static对象,参考单例模式的静态局部对象做法.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容