文章目录
- 4. 确定对象被使用前已先被初始化(Make sure that objects are initialized before they’re used.)
- 5. 了解C++默默编写并调用哪些函数(Know what functions C++ silently writes and calls)
- 6. 若不想使用编译器自动生成的函数,就该明确拒绝(Explicitly disallow the use of compiler-generated functions you do not want)
- 7. 为多态基类声明virtual析构函数(Declare destructors virtual in polymorphic base classes)
- 8. 别让异常逃离析构函数(Prevent exceptions from leaving destructors)
- 9. 绝不在构造和析构过程中调用virtual函数(Never call virtual functions during construction or destruction)
- 10. 令operator=返回一个reference to *this(Have assignment operators return a reference to *this)
- 11. 在operator=中处理”自我赋值”(Handle assignment to self in operator=)
- 12. 复制对象时勿忘其每一个成分(Copy all parts of an object)

4. 确定对象被使用前已先被初始化(Make sure that objects are initialized before they’re used.)
关于变量的初始化,是个头疼的问题。
在C语言里:
- 全局变量如果没有初始化,为被初始化为0。
- 局部变量由于位于栈上,没有初始化时,为随机值。
在C++里,对于自己的数据类型,我们最好不要做这样的期望,因为存在风险。
// Example program
#include <iostream>
#