Inside The C++ Object Model(Note):Member Initialization List
来源:互联网 发布:潮男淘宝店 编辑:程序博客网 时间:2024/04/29 09:38
为了让程序顺利通过编译,在下列四种情况中你必须使用成员初始化列表:
1.当初始化一个reference member时;
2.当初始化一个const member时;
3.当调用一个base class 的constructor,而它拥有一组参数;
4.当调用一个member class的constructor,而它拥有一组参数;
注意:成员初始化列表并不是一组函数调用,编译器会一一操作初始化列表,以适当次序在
constructor之内安插初始化操作,并且是在任何显式的用户代码之前。
这里总的需要留意两点:
第一个:member object的初始化,最好放到初始化列表里面。若放置于构造器中,则会产生
临时的object0,初始化之,在做赋值运算给object,然后object0自行销毁,期间耗时耗力。若
置于初始化列表,则编译器会在构造函数中,user code之前,调用object的构造函数,予以初
始化。
第二个:初始化列表的初始化次序。初始化次序和member在类中的声明次序一致。相互关联的
member,需要十分留意初始化列表中,其中依赖的次序。解决的办法:把其中一部分使用初始
化列表初始化,而另一部分放置到构造函数中使用user code予以表达,这样即便次序存在依赖,
也会只“先执行合成的,再执行user的code”。
- Inside The C++ Object Model(Note):Member Initialization List
- Inside the C++ Model第二讲之 成员初始化列表(Member Initialization List)
- Inside The C++ Object Model :note (1)
- Inside the C++ Object Model:note(2)
- Inside The C++ object model:note(3)
- Inside The C++ Object Model(Note):sizeof in an object
- Inside The C++ Object Model
- Inside the C++ Object Model
- 《Inside the C++ Object Model》
- Inside The C++ Object Model
- Inside The C++ Object Model
- Inside The C++ Object Model
- inside the c++ object model
- Inside The C++ Object Model ---- Object Lessons
- 读Inside the C++ Object Model有感
- Inside The C++ Object Model 笔记
- 《Inside the C++ Object Model》拿到了
- Inside The C++ Object Model (一)
- 二阶无源RC滤波的MATLAB仿真
- malloc kmalloc vmalloc的区别
- unchecked和check控制基元类型操作
- LINUX协议栈详解 协议处理
- 使用 ftrace 调试 Linux 内核
- Inside The C++ Object Model(Note):Member Initialization List
- 关于ORACLE中JOB指定节点运行的方法
- 查看linux的系统和版本
- Vi编辑器的基本使用方法!
- Linux Shell
- 偶数求和
- Installing and Using Ftrace
- 离散数学蕴含等值式前件为假命题为真的理解
- 在Windows上使用ROR和MongoDB