C++ 中的純虛擬函式和抽象類


純虛擬函式是 C++ 中的虛擬函式,我們無需編寫任何函式定義,只需宣告它即可。它透過在宣告中分配 0 來宣告。

抽象類 是 C++ 中至少有一個純虛擬函式的類。

  • 抽象類可以具有正常函式和變數以及純虛擬函式。

  • 不能例項化抽象類,但可以建立抽象類型別指標和引用。

  • 抽象類主要用於向上轉型,以便其派生類可以使用其介面。

  • 如果抽象類有派生類,它們必須實現所有純虛擬函式,否則它們也將變成抽象的。

  • 我們不能建立抽象類的物件,因為我們在 Vtable 中保留了純虛擬函式的槽,但我們沒有放入任何地址,因此 Vtable 將保持不完整。

示例程式碼

 即時演示

#include<iostream>
using namespace std;
class B {
   public:
      virtual void s() = 0; // Pure Virtual Function
};

class D:public B {
   public:
      void s() {
         cout << "Virtual Function in Derived class\n";
      }
};

int main() {
   B *b;
   D dobj;
   b = &dobj;
   b->s();
}

輸出

Virtual Function in Derived class

更新於: 2023-10-07

23K+ 瀏覽次數

開啟你的職業

完成課程以獲得認證

立即開始
廣告