当前位置:首页 C++ > 正文

c++虚函数与纯虚函数的区别

作者:野牛程序员:2023-12-04 16:36:31 C++阅读 2702

C++虚函数与纯虚函数之间的主要区别在于实现。虚函数是在基类中有一个实现,并且可以在派生类中被覆盖或重写。而纯虚函数在基类中只有声明,没有实现,它的实现留给派生类去完成。

  1. 虚函数(Virtual Function)

    示例代码:

    class Base {
    public:
        virtual void foo() {
            // 默认实现
        }
    };
    
    class Derived : public Base {
    public:
        void foo() override {
            // 派生类中的实现,覆盖了基类的虚函数
        }
    };
    • 在基类中有一个默认实现。

    • 可以在派生类中被覆盖(override)或重写(redefine)。

    • 可以有默认实现,如果派生类选择不覆盖它。

  2. 纯虚函数(Pure Virtual Function)

    示例代码:

    class AbstractBase {
    public:
        virtual void pureVirtualFunction() = 0; // 纯虚函数声明
    };
    
    class ConcreteDerived : public AbstractBase {
    public:
        void pureVirtualFunction() override {
            // 必须在派生类中提供实现
        }
    };
    • 在基类中只有声明,没有实现。

    • 派生类必须提供实现,否则它也会成为抽象类,无法实例化。

    • 通常用virtual关键字声明,并在声明末尾添加= 0

总体而言,虚函数提供了一个默认实现,而纯虚函数则强制派生类提供实现。类含有纯虚函数的类被称为抽象类,无法被实例化,只能被用作基类。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击