在 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
,我们可以创建一个具体类对象,并调用纯虚函数和普通函数。