在 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
資料結構
網路
關係資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
JavaScript
PHP