条款四——对象初始化
分清楚赋值操作和初始化操作
C++ 规定,对象的成员变量的初始化动作发生在进入构造函数本体之前。
可以使用这种方式进行初始化
如果成员变量是const或reference,则一定需要初始化,不能赋值
记住:使用成员初值列比赋值更高效!!!
对象的初始化顺序都是按照成员的声明顺序进行初始化
C++对于定于与不同编译单元的non-local static对象的初始化次序无明确规定,然而在初始化一些non-local static对象时,可能会使用其他编译单元的non-local static 对象。
解决方案:把non-local static对象变为local static 对象,把non-local static对象搬到自己的专属函数里。这些函数返回一个reference指向它所含的对象