C++中的纯虚类和抽象类是两个相关概念,但存在一些区别。
class Base {
public:
virtual void func() = 0; // 纯虚函数
};
class Derived : public Base {
public:
void func() override {
// 实现纯虚函数
}
};
class AbstractBase {
public:
virtual void func() = 0; // 纯虚函数
virtual void func2() {
// 非纯虚函数
}
};
class ConcreteDerived : public AbstractBase {
public:
void func() override {
// 实现纯虚函数
}
};
总的来说,纯虚类是指所有的成员函数都是纯虚函数的类,而抽象类是指含有至少一个纯虚函数的类。在实际应用中,抽象类更常见,用于定义接口,而纯虚类用于定义一些更加抽象的概念。