C++虛函數(shù)是基類(lèi)中的一個(gè)成員函數(shù),您可以在派生類(lèi)中重新定義它。 它聲明使用virtual關(guān)鍵字。
它用于告訴編譯器對(duì)函數(shù)執(zhí)行動(dòng)態(tài)鏈接或后期綁定。
后期綁定或動(dòng)態(tài)鏈接
在后期綁定函數(shù)調(diào)用在運(yùn)行時(shí)被解決。 因此,編譯器在運(yùn)行時(shí)確定對(duì)象的類(lèi)型,然后綁定函數(shù)調(diào)用。
C++虛函數(shù)示例
下面來(lái)看看看在程序中用來(lái)調(diào)用派生類(lèi)的C++虛函數(shù)的簡(jiǎn)單例子。
#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;
}
執(zhí)行上面代碼得到以下結(jié)果 -
Derived Class is invoked