读取未初始化的值会导致不明确的行为。在某些平台上,仅仅只是读取未初始化的值,就可能让你的程序终止运行。更可能的情况是读入一些“半随机”bits,污染了正在进行读取动作的那个对象,最终导致不可测知的程序行为,以及许多令人不愉快的调试过程。
对于类的成员来说,最好使用构造函数的列表初始化对成员变量进行初始化。
对象的成员变量的初始化动作发生在进入构造函数本体之前。
总结
1.为内置对象进行手工初始化,因为C++不保证初始化它们。
2.构造函数最好使用成员初值列,而不要在构造函数本体内使用赋值操作。初值列列出的成员变量,其排列次序应该和它们在class中的声明次序相同。
3. 为免除“跨编译单元之初始化次序”问题,请以local static对象替换non-local static对象。