初始化列表和声明的顺序之间的关系
来源:互联网 发布:嘉实优化红利基金 编辑:程序博客网 时间:2024/06/04 19:19
类的数据成员的初始化顺序是按照类内数据成员的声明顺序进行初始化的,这样就可以减少不必要的开销,这样的话类就不必要为每一个对象进行跟踪初始化数据成员,只需要按照类中的声明顺序进行初始化就可以了。
如果允许上面的情况(即,成员按它们在初始化列表上出现的顺序被初始化)发生,编译器就要为每一个对象跟踪其成员初始化的顺序,以保证它们的析构函数以正确的顺序被调用。这会带来昂贵的开销。所以,为了避免这一开销,同一种类型的所有对象在创建(构造)和摧毁(析构)过程中对成员的处理顺序都是相同的,而不管成员在初始化列表中的顺序如何。
另外,基类数据成员总是在派生类数据成员之前被初始化,所以使用继承时,要把基类的初始化列在成员初始化列表的最前面。
记住:初始化列表中成员列出的顺序和成员在类内声明的顺序一致。
- 初始化列表和声明的顺序之间的关系
- 类成员是按照它们在类里被声明的顺序进行初始化的,和它们在成员初始化列表中列出的顺序没一点关系
- 11.c++-初始化列表中初始化顺序和它们在类中声明的顺序保持一致
- 初始化列表的初始化变量顺序是根据成员变量的声明顺序来执行的
- Effective C++学习笔记:初始化列表中成员列出的顺序和它们在类中声明的顺序相同
- Effective c++ 条款13: 初始化列表中成员列出的顺序和它们在类中声明的顺序相同
- Effective C++学习笔记:初始化列表中成员列出的顺序和它们在类中声明的顺序相同
- 条款13:初始化列表中成员列出的顺序和它们在类中声明的顺序相同
- 条款 13: 初始化列表中成员列出的顺序和它们在类中声明的顺序相同
- 初始化列表的顺序应该是按照你成员声明顺序初始化
- 类的成员变量 声明顺序 决定 初始化顺序(构造函数初始化列表不影响)
- 初始化列表的初始化顺序
- 初始化列表的执行顺序
- effective C++笔记之条款13: 初始化列表中成员列出的顺序和它们在类中声明的顺序相同
- 诠释了继承类之间构造器(有参、无参)、对象初始化块和静态初始化块之间的关系及调用顺序
- 在初始化列表中,成员变量的初始化顺序是其在类中声明顺序,而非列表中的顺序。
- 在初始化列表中,成员变量的初始化顺序是其在类中声明顺序,而非列表中的顺序。
- 继承关系的类初始化和实例化的顺序
- CSS经典按钮集合(转自南华)
- NGUI疑难杂症
- 双缓存原理
- VC2008在CMFCToolBar工具栏中加入组合框
- 【Android】缩略图Thumbnails
- 初始化列表和声明的顺序之间的关系
- getting start with storm 翻译 第二章 part-1
- 如何解决Oracle“不能创建唯一索引,发现重复记录”问题
- activity切换时动画效果
- 用qwt绘制AD波形
- YEAP, cocos2d-x-2.1.4 with Qt5 is DONE!
- cocos2d-x 之 添加sns分享
- cookie 的操作
- 异步时钟域的亚稳态问题和同步器(四)