在 C++ 中调用超类构造函数的规则是什么?
在 C++ 中,我们可以派生一些类。有时我们需要在调用派生类的构造函数时调用超类(基类)构造函数。与 Java 不同,对于超类没有引用变量。如果构造函数是非参数的,那么它将自动使用派生类调用,否则我们必须将超类构造函数放入派生类的初始化列表中。
在本例中,我们将首先看到没有参数的构造函数。
示例
#include <iostream> using namespace std; class MyBaseClass { public: MyBaseClass() { cout << "Constructor of base class" << endl; } }; class MyDerivedClass : public MyBaseClass { public: MyDerivedClass() { cout << "Constructor of derived class" << endl; } }; int main() { MyDerivedClass derived; }
输出
Constructor of base class Constructor of derived class
现在让我们看看可以采用参数的构造函数。
示例
#include <iostream> using namespace std; class MyBaseClass { public: MyBaseClass(int x) { cout << "Constructor of base class: " << x << endl; } }; class MyDerivedClass : public MyBaseClass { //base constructor as initializer list public: MyDerivedClass(int y) : MyBaseClass(50) { cout << "Constructor of derived class: " << y << endl; } }; int main() { MyDerivedClass derived(100); }
输出
Constructor of base class: 50 Constructor of derived class: 100
Ads