1. 静态成员最先构造,按照静态成员初始化顺序,不是类里面的声明顺序

2. 父类构造

3. 非静态成员构造,按照类成员声明顺序,不是逗号初始化成员顺序

4. 自身构造函数

Demo:

class TestA
{
public:
TestA(){
std::cout << "TestA()" << std::endl;
}
}; class TestB
{
public:
TestB(int b) {
std::cout << "TestB()" << std::endl;
}
}; class TestC
{
public:
TestC(int c) {
std::cout << "TestC()" << std::endl;
}
}; class TestD
{
public:
TestD() {
std::cout << "TestD()" << std::endl;
}
}; class TestE
{
public:
TestE() {
std::cout << "TestE()" << std::endl;
}
}; class Father
{
public:
Father() {
std::cout << "Father()" << std::endl;
}
~Father() {
std::cout << "~Father()" << std::endl;
}
}; class SonA : public Father
{
public:
SonA(int num1, int num2)
:m_C(num1)
,m_B(num2)
{
std::cout << "SonA()" << std::endl; //先Father,最后Son
}
~SonA() {
std::cout << "~SonA()" << std::endl;
}
public:
static TestD m_gD;
static TestE m_gE; private:
TestA m_A;
TestB m_B;
TestC m_C; //member声明顺序 A,B,C,逗号初始化顺序忽略
}; TestE SonA::m_gE;
TestD SonA::m_gD; //static初始化顺序 E,D int main()
{
SonA son(1, 2);
}

输出:

TestE()
TestD()
Father()
TestA()
TestB()
TestC()
SonA()

  

最新文章

  1. Find and delete duplicate files
  2. 用php脚本给html中引用的js和css路径打上版本
  3. linux centos中使用yum安装tomcat
  4. Spring学习笔记—最小化Spring XML配置
  5. 搭建本地MAVEN NEXUS 服务
  6. Redis教程(七):Key操作命令详解
  7. iOS开发的设计模式
  8. 修改weblogic11g的JDK版本
  9. ArcMap - 分割.
  10. ckeditor3.4.2是否升级为4.2.1的问题
  11. 一个JS效果竟然要研究一天,我是不是不适合做前端?
  12. 软件工程团队:Spring计划会议及详细计划表
  13. Jquery回到顶部效果
  14. [Linux]《鸟哥的私房菜》笔记 (缓慢更新)
  15. python使用selenium
  16. Jquery_artDialog对话框弹出
  17. Java实现基于桶式排序思想和计数排序思想实现的基数排序
  18. iOS边练边学--tableView的批量操作
  19. python3 datetime和time获取当前日期和时间
  20. CF311B Cats Transport

热门文章

  1. Error: pgraster_wkb_reader: grayscale band type 10 unsupported
  2. C#调用Python(一)
  3. JPA学习(四、JPA_映射关联关系)
  4. luogu P1434 滑雪 x
  5. 搜狗微信采集 —— python爬虫系列一
  6. 论文阅读:Elastic Scaling of Stateful Network Functions
  7. pythonCSV模块
  8. shell基础操作
  9. c++内置变量类型
  10. [LeetCode]-DataBase-Combine Two Tables