温馨提示×

如何在 C++纯虚类中定义函数

c++
小樊
83
2024-08-02 20:36:19
栏目: 编程语言

在 C++ 中,可以在纯虚类中定义函数的实现。纯虚类是包含至少一个纯虚函数的抽象类,而纯虚函数是在基类中声明但没有实现的虚函数。

以下是在 C++ 中在纯虚类中定义函数的方法:

#include <iostream>

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

    // 定义一个普通函数
    void normalFunction() {
        std::cout << "This is a normal function in the abstract class" << std::endl;
    }
};

// 在纯虚类外部实现纯虚函数
void AbstractClass::pureVirtualFunction() {
    std::cout << "This is the implementation of the pure virtual function" << std::endl;
}

int main() {
    AbstractClass* obj = nullptr;
    // AbstractClass obj; // 错误,抽象类不能被实例化

    // 正确,通过继承实现纯虚函数
    class ConcreteClass : public AbstractClass {
    public:
        // 实现纯虚函数
        void pureVirtualFunction() override {
            std::cout << "This is the implementation of the pure virtual function in the concrete class" << std::endl;
        }
    };

    ConcreteClass concreteObj;
    obj = &concreteObj;

    // 调用纯虚函数和普通函数
    obj->pureVirtualFunction();
    obj->normalFunction();

    return 0;
}

在上面的示例中,我们在抽象类 AbstractClass 中定义了一个普通函数 normalFunction 的实现。然后,在抽象类外部实现了纯虚函数 pureVirtualFunction。最后,在一个具体的类 ConcreteClass 中实现了纯虚函数。通过继承 AbstractClass,我们可以创建一个具体类对象,并调用纯虚函数和普通函数。

0