今天来总结C++语言中极为重要的知识点——虚函数,包含常考面试题┗|`O′|┛ 嗷~~,一起来学习吧~
一、虚函数与纯虚函数
1.1 虚函数
虚函数是在基类中被声明为virtual,并在派生类中重新定义的成员函数,可实现成员函数的动态重载。核心理念就是通过基类访问派生类定义的函数。只有指定为虚函数的成员函数才能进行动态绑定。
1.2 纯虚函数
纯虚函数:是一种特殊的虚函数,在基类中为其派生类保留一个函数的名字,在基类中没有定义,要求任何派生类根据需要对它进行定义。作为接口而存在,纯虚函数不具备函数的功能,一般不能直接被调用。
//纯虚函数
class <类名>
{
virtual <类型><函数名>(<参数表>)=0;
…
};
纯虚函数的作用:在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。将函数定义为纯虚函数,若要使派生类为非抽象类,则编译器要求在派生类中,必须对纯虚函数予以重载以实现多态性。
纯虚函数可以让类先具有一个操作名称,而没有操作内容,让派生类在继承时再去具体地给出定义。
1.3 纯虚函数的引入原因
(1)为了方便使用多态特性,在基类中定义纯虚函数。
(2)在很多情况下,基类本身生成对象是不合情理的。