gpt4 book ai didi

c++ - 为什么派生构造函数被迫在 C++ 中调用基构造函数?

转载 作者:行者123 更新时间:2023-12-02 09:59:59 26 4
gpt4 key购买 nike

为什么派生类构造函数被迫在 C++ 中调用基类构造函数(隐式或显式)?
例如:

#include <iostream>

struct B1 {
B1() { std::cout << "B1"; }
};

struct B2 {
B2(int x) { std::cout << "B2"; }
};

struct D1: B1 {
D1() { std::cout << "D1"; } // implicitly calls B1::B1
};

struct D2: B2 {
D2(int x): B2(x) { std::cout << "D2"; } // explicitly calls B2::B2
};

int main() {
D1 d1 {}; // prints B1D1
D2 d2 {5}; // prints B2D2
return 0;
}

最佳答案

派生类要继承基类,这意味着基类的功能需要在这个派生类中使用。否则继承就没有意义了。
如果不调用基类的构造函数,基类的成员函数可能无法工作。

关于c++ - 为什么派生构造函数被迫在 C++ 中调用基构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63100057/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com