C++构造函数中成员对象的初始化顺序
2012-02-29 20:42
169 查看
摘自:《高质量C/C++程序设计》
一个有趣的 现象是,成员对象初始化的次序完全不受它们在初始化表中次序的影响,只由成员对象在类中声明的次序决定。这是因为类的声明是唯一的,而类的构造函数可以有多个,因此会有多个不同次序的初始化表。如果成员对象按照初始化表的次序进行构造,这将导致析构函数无法得到唯一的逆序。[Eckel, p260-261]
一个有趣的 现象是,成员对象初始化的次序完全不受它们在初始化表中次序的影响,只由成员对象在类中声明的次序决定。这是因为类的声明是唯一的,而类的构造函数可以有多个,因此会有多个不同次序的初始化表。如果成员对象按照初始化表的次序进行构造,这将导致析构函数无法得到唯一的逆序。[Eckel, p260-261]
相关文章推荐
- C++构造函数执行顺序测试(成员包含其他类对象的时候)
- Java中创建对象时,初始化成员变量的代码的执行顺序
- C++中构造函数,成员对象的初始化顺序
- C++类对象数据成员的构造函数初始化顺序
- JAVA对象的成员初始化顺序的初步理解
- 类加载及对象 成员变量初始化顺序
- java程序在执行过程中,类,对象以及它们成员加载、初始化的顺序如下:
- 黑马程序员_Java基础_面向对象(Static的使用、对象初始化和调用成员过程、单例设计模式)
- 一个java对象的初始化顺序
- Java类(对象)的初始化顺序小结
- java类对象的初始化顺序
- c++11 中成员变量初始化的顺序
- java类的初始化和对象的创建顺序
- 例4.8 含有对象成员的派生类构造函数和析构函数的执行顺序
- 继承与初始化(static对象初始化顺序)
- Java对象初始化顺序
- 静态成员数据 静态对象初始化 .
- java类中各成员初始化的顺序
- 在对象创建的时候就自动初始化成员变量-构造函数
- 构造函数初始化列表中成员列出顺序要和它们在类中声明顺序相同