c++对象创建过程略解

对象的创建大致分三个阶段

  1. 执行基类的构造函数
  2. 执行类类型成员的构造函数
  3. 执行自己类的构造函数

  1. 执行类的基类构造函数
    • 所有基类都会执行自己的构造函数,无论这个基类在不在初始化列表中。
    • 可以在初始话列表中指定构造函数,如果不指定。就调用默认构造函数。
    • 声明继承时基类的书写顺序执行。与初始化列表中的顺序无关
  1. 对类的类类型成员进行初始化
    • 所有类类型成员都会调用构造函数对自己进行初始化,无论这个成员在不在初始化列表中。
    • 可以在初始话列表中指定构造函数,如果不指定。就调用默认构造函数。
    • 声明继承时基类的书写顺序执行。与初始化列表中的顺序无关
  1. 执行类自己的构造函数

demo:


#include<bits/stdc++.h>
using namespace std;

class Parent2 {
public:
    Parent2() {
        cout << "Parent2 constructor is called\n";
    }
};

class Parent1 {
public:
    Parent1() {
        cout << "Parent1 constructor is called\n";
    }
};

class A {
public:
    A() { cout << "A constructor is called\n"; }
};

class B {
public:
    B() { cout << "B constructor is called\n"; }
};

class Son : Parent1 , Parent2
{
    A a;
    B b;
public:
    Son(): b(), Parent1()
    {
        cout << "Son constructor is callede\n";
    }
};

int main()
{

    Son s;
    return 0;
}

执行结果:

Parent1 constructor is called
Parent2 constructor is called
A constructor is called
B constructor is called
Son constructor is callede
posted @ 2022-04-19 18:17  enbug  阅读(365)  评论(0)    收藏  举报