在 C++ 中,面向对象的三大特征之一多态就是通过虚函数实现,虚函数使用关键字 virtual 声明。意思是,当派生类中重新定义基类中定义的虚函数时,告诉编译器不要静态链接到该函数。而是根据所调用的对象类型来选择调用的函数,这种操作也称为动态链接(或后期绑定)。

虚函数就是使用关键字 virtual 声明的函数,例如:

我们可以在基类中把一个函数定义为虚函数,然后在子类中重新实现,这样就实现了多态。

有时候,我们需要在基类中定义虚函数,以便在派生类中重新定义该函数更好地适用于对象,但是在基类中又不能对虚函数给出有意义的实现,这个时候就会用到纯虚函数。

在 C++ 中定义纯虚函数,可以通过在虚函数后面跟 =0; 来实现。 例如:

我们可以在基类中把一个函数定义为纯虚函数,然后在子类中实现逻辑。