条款04:确定对象被使用之前已先被初始化

  1. 总是使用成员初值列(更加高效安全)。因为使用赋值的方式的话,函数会首先进入default构造函数,使用默认值初始化对象,之后再使用赋值操作给成员赋值,这样就降低了效率。
  2. 成员变量的初始化顺序由声明顺序决定,而非成员初值列中的顺序。
  3. 所谓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
简而言之就是主要作用是对变量进行了封装。

  1. tips
    • 为内置对象进行手工初始化,因为c++不保证初始化它们
    • 为免除“跨编译单元之初始化次序”问题,请以local static对象替换non-local static对象
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容