C++ 中的虛擬函式和執行時多型性


C++ 中的虛擬函式用於建立一個基類指標列表並呼叫任何派生類的函式,而無需知道派生類物件的種類。虛擬函式在執行時在較晚時解析。

虛擬函式的主要用處是實現執行時多型性。執行時多型性只能透過基類型別的指標(或引用)實現。此外,基類指標可以指向基類物件以及派生類物件。在上面的程式碼中,基類指標‘b’包含派生類‘d’物件的地址。

示例程式碼

#include<iostream>
using namespace std;
class B {
   public:
      virtual void s() {
         cout<<" In Base \n";
      }
};
class D: public B {
   public:
      void s() {
         cout<<"In Derived \n";
      }
};
int main(void) {
   D d; // An object of class D
   B *b= &d; // A pointer of type B* pointing to d
   b->s(); // prints "D::s() called"
   return 0;
}

輸出

In Derived

更新於:30-Jul-2019

6K+ 瀏覽

開啟你的 職業生涯

完成課程即可獲得認證

開始
廣告
© . All rights reserved.