c++纯虚函数和虚函数区别是什么

在C++中,纯虚函数和虚函数都与面向对象编程中的多态性有关,但它们之间存在一些区别。

1、纯虚函数(Pure Virtual Function):

纯虚函数是在基类中声明的没有实际实现的虚函数。

通过将函数声明为纯虚函数,可以使基类成为抽象类,这意味着它不能直接实例化对象。

子类必须实现纯虚函数,否则子类也将成为抽象类。

声明纯虚函数的语法是在函数声明末尾加上 “= 0″:virtual void functionName() = 0;

示例:

class Base {
public:
    virtual void pureVirtualFunction() = 0; // 纯虚函数
};

class Derived : public Base {
public:
    void pureVirtualFunction() override {
        // 子类必须实现纯虚函数
        // 具体的实现代码
    }
};

2、虚函数(Virtual Function):

虚函数是在基类中声明并使用关键字 “virtual” 的函数。

虚函数可以被子类重写(override),并且根据实际调用的对象类型动态地决定调用哪个函数实现。

基类指针或引用可以用于调用虚函数,实现运行时多态。

示例:

class Base {
public:
    virtual void virtualFunction() {
        // 基类的虚函数实现
    }
};

class Derived : public Base {
public:
    void virtualFunction() override {
        // 子类重写了基类的虚函数
        // 具体的实现代码
    }
};

总结:

纯虚函数是没有实际实现的虚函数,用于定义接口和创建抽象类。

虚函数是在基类中声明并有默认实现的函数,可以被子类重写,并通过运行时多态性进行动态分派。


【AD】美国洛杉矶/香港/日本VPS推荐,回程电信CN2 GIA线路,延迟低、稳定性高、免费备份_搬瓦工