在 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

更新於:2019 年 7 月 30 日

10K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始
Ads
© . All rights reserved.