虚函数与纯虚函数

Posted yunlambert

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了虚函数与纯虚函数相关的知识,希望对你有一定的参考价值。

前言

最近面试的时候面试官问了这样的问题,自己虽然大致知道他们之间的区别,但当时面试时有些逻辑混乱。所以面试完想好好总结一番。

虚函数

C++的虚函数主要作用是“运行时多态”,父类中提供虚函数的实现,为子类提供默认的函数实现。简要来说就是子类可以重写父类的虚函数实现子类的特殊化

纯虚函数

C++中包含纯虚函数的类,被称为是“抽象类”。抽象类不能使用new出对象,只有实现了这个纯虚函数的子类才能new出对象。简要来数,纯虚函数在基类中是没有定义的,必须在子类中加以实现!

定义一个函数为虚函数,不代表函数为不被实现的函数,而是为了允许用基类的指针来调用子类的这个函数。
定义一个函数为纯虚函数,才代表函数没有被实现,而是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。

以上是关于虚函数与纯虚函数的主要内容,如果未能解决你的问题,请参考以下文章

C ++:私有虚函数与纯虚函数[重复]

多态实现--虚函数与纯虚函数

虚函数与纯虚函数

关于虚函数与纯虚函数的区别

虚析构函数与纯虚函数

运算符重载如何声明为纯虚函数?