Effective C++读书笔记(4)
来源:互联网 发布:做淘宝的流程 编辑:程序博客网 时间:2024/05/23 10:18
条款4:确定对象在被使用前已被初始化
永远在使用对象前现将其初始化(1.对于无成员的内置类型必须手工完成初始化,2.对于自定义类型交给构造函数(每个构造函数都将对象的每个成员初始化))
在构造函数内对各成员进行赋值的操作叫做赋值。对象的成员变量的初始化动作在进入构造函数本体之前,即各成员的default构造函数被调用时(除内置类型)。
使用构造函数的成员初值列进行初始化更为高效,并且在初值列中应该列出所有成员变量。(特别是当类和其基类拥有共同的成员变量时多份初始化列即可能存在重复,此时应遗漏“赋值表现与初始化一样好”的成员变量,将他们赋值移至private函数中供所有构造函数调用)。
问题:解决在不同编译单元内定义的non-local static对象的初始化次序。
static对象表示其寿命从构造出来直到程序结束,non-local static表示除了在函数内的global、namespace、class、file内的static对象。
编译单元指产生单一目标文件的那些源码。基本是单一源文件加上其包含的头文件。
解决方案:采用单例模式,将每一个non-local static对象搬到自己的专属函数中(该对象在此函数内声明为static)。这些函数返回一个reference只想它所含的对象。然后用户调用这些函数。(non-local static对象被local static对象替换了)。
函数内的local static对象会在“该函数被调用期间”“首次遇上该对象的定义式”时被初始化。
0 0
- 《effective c++》读书笔记4
- <Effective C++>读书笔记-4
- <<Effective C++>>读书笔记(4)
- <<Effective C++>>读书笔记4: 设计与声明
- <<More Effective C++>>读书笔记4: 效率
- 《Effective C++》读书笔记
- 《Effective C++》读书笔记
- 《Effective c++》读书笔记
- 《more effective c++》读书笔记
- <<effective c++>> 读书笔记
- 《Effective C++》读书笔记
- 《Effective C++》读书笔记
- Effective C++(1)读书笔记
- Effective C++(2)读书笔记
- 《Effective C++》读书笔记
- 《Effective C++》读书笔记
- 《effective c++》读书笔记【一】
- 《effective c++》读书笔记1
- html中的小技巧
- C#中的装箱和拆箱
- boost完全开发指南第2章-处理时间4 (日期区间date_period)
- Eclipse+windows7安装Python插件PyDev
- 项目视频讲解_传播智客OA
- Effective C++读书笔记(4)
- Python学习(三)——————基础知识汇总(三)
- hdu 2795 Billboard
- 二十四 随机函数 rand,srand,random,srandom 的区别与使用
- 我的个人知识管理工具一览及相关经验技巧
- 重要的OpenGL知识网站
- objloader使用方法
- MySql:查询缓存机制
- 二十五 Linux stat函数讲解: