C++ 继承和构造函数调用顺序示例

代码:

#include <iostream>
using namespace std;

class A {
public:
    A() { cout << 'A'; }
};

class B {
public:
    B() { cout << 'B'; }
};

class C : public A {
    B b;
public:
    C() { cout << 'C'; }
};

int main() {
    C obj;
    return 0;
}

输出:

ABC

解释:

  • 我们定义了三个类 A、B 和 C。
  • 类 A 具有一个默认构造函数,当创建类 A 的对象时,它会打印 'A'。
  • 同样,类 B 具有一个默认构造函数,当创建类 B 的对象时,它会打印 'B'。
  • 类 C 公开继承自类 A,这意味着类 A 的所有公共成员将成为类 C 的公共成员。类 C 还包含一个类 B 的对象作为其成员。
  • 当在 main 函数中创建类 C 的对象时,会发生以下情况:
    • 首先调用类 A 的构造函数,它打印 'A'。
    • 然后调用类 B 的构造函数,它打印 'B'。
    • 最后,调用类 C 的构造函数,它打印 'C'。
  • 因此,输出为 'ABC'。
C++ 继承和构造函数调用顺序示例

原文地址: https://www.cveoy.top/t/topic/omeJ 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录