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 {
// 實現純虛函數
}
};
總的來說,純虛類是指所有的成員函數都是純虛函數的類,而抽象類是指含有至少一個純虛函數的類。在實際應用中,抽象類更常見,用于定義接口,而純虛類用于定義一些更加抽象的概念。