C++虛擬函式


C++虛擬函式是基礎類別中的一個成員函式,您可以在派生類中重新定義它。 它宣告使用virtual關鍵字。

它用於告訴編譯器對函式執行動態連結或後期系結。

後期系結或動態連結

在後期系結函式呼叫在執行時被解決。 因此,編譯器在執行時確定物件的型別,然後系結函式呼叫。

C++虛擬函式範例

下面來看看看在程式中用來呼叫派生類的C++虛擬函式的簡單例子。

#include <iostream>  
using namespace std;  
class A  
{  
 public:  
     virtual void display()  
     {  
      cout << "Base class is invoked"<<endl;  
     }  
};  
class B:public A  
{  
 public:  
     void display()  
     {  
      cout << "Derived Class is invoked"<<endl;  
     }  
};  
int main()  
{  
    A* a;    //pointer of base class  
    B b;     //object of derived class  
    a = &b;  
    a->display();   //Late Binding occurs  
    return 0;
}

執行上面程式碼得到以下結果 -

Derived Class is invoked