- 总是使用成员初值列(更加高效安全)。因为使用赋值的方式的话,函数会首先进入default构造函数,使用默认值初始化对象,之后再使用赋值操作给成员赋值,这样就降低了效率。
- 成员变量的初始化顺序由声明顺序决定,而非成员初值列中的顺序。
- 所谓static变量,其寿命为
[被构造出来,程序结束]
,即,static变量在main函数结束的时候被自动析构,种类:- global对象
- 定义于namespace作用域中的对象
- 在classes、函数、file作用域内被声明为static的对象
【存疑】其中函数内的static是non-global static变量,其他几种都是global static变量。
【正解】关于static的使用:https://www.cnblogs.com/stoneJin/archive/2011/09/21/2183313.html
简而言之就是主要作用是对变量进行了封装。
- tips
- 为内置对象进行手工初始化,因为c++不保证初始化它们
- 为免除“跨编译单元之初始化次序”问题,请以local static对象替换non-local static对象