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

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

C++中的虚函数: 虚函数是在基类中声明并由派生类重新定义(覆盖)的成员函数。当使用指针或对基类的引用来引用派生类对象时,可以为对象调用虚函数并执行派生类的函数版本。

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

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

  • 这些是运行时多态性的概念。
  • 原型,即两个函数的声明在整个程序中保持不变。
  • 这些函数不能是全局的或静态的。

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

虚函数 纯虚函数
虚函数是基类的成员函数,可以由派生类重新定义。 纯虚函数是基类的成员函数,其唯一声明在基类中提供,应在派生类中定义,否则派生类也变为抽象类。
具有虚函数的类不是抽象的。 包含纯虚函数的基类变为抽象。
定义在基类中给出。 基类中没有给出定义。
可以实例化具有虚函数的基类,即可以制作其对象。 具有纯虚函数的基类变得抽象,即它不能被实例化。
如果派生类不重新定义基类的虚函数,则不影响编译。 如果派生类不重新定义基类的虚函数,则不会出现编译错误,但派生类也会像基类一样变成抽象类。
所有派生类可能会或可能不会重新定义基类的虚函数。 所有派生类都必须重新定义基类的纯虚函数,否则派生类也像基类一样变得抽象。

虚函数语法

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

纯虚函数语法

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程