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