虚函数与纯虚函数在 C++ 中的区别

虚函数与纯虚函数在 C++ 中的区别

C++ 中的虚函数

虚函数是在基类内定义并在派生类中重新定义的成员函数。当你使用指向基类的指针或引用来引用派生类对象时,可以调用该对象中的虚函数并执行派生类的函数版本。

C++ 中的纯虚函数

C++ 中的纯虚函数(或抽象函数)是没有实现的虚函数,我们仅仅定义它。通过在声明中分配 0 来宣告纯虚函数。

虚函数和纯虚函数之间的相似之处

  1. 这些是运行时多态的概念。
  2. 函数的原型(Declaration)在整个程序中保持不变。
  3. 这些函数不能是全局的或静态的。

虚函数和纯虚函数在 C++ 中的区别

虚函数 纯虚函数
虚函数是基类的成员函数,可以在派生类中重定义。 纯虚函数是基类的成员函数,在基类中仅提供声明,在派生类中必须定义;否则,派生类将成为抽象类。
含有虚函数的类不是抽象类。 含有纯虚函数的基类是抽象类。
在基类中给出定义。 在基类中没有给出定义。
含有虚函数的基类可以被实例化,即可以创建该类的对象。 含有纯虚函数的基类是抽象类,即不能被实例化。
如果派生类不重新定义基类的虚函数,则不会影响编译。 如果派生类不重新定义基类的纯虚函数,则会变成抽象类,与基类相同。
所有派生类可以重定义或不重定义基类的虚函数。 所有派生类必须重新定义基类的纯虚函数,否则,派生类将成为抽象类。

虚函数语法:

virtual<func_type><func_name>()
{
    // code
}  

纯虚函数语法:

virtual<func_type><func_name>()
    = 0; 

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程