C++中的純虛類和抽象類是兩個(gè)相關(guān)概念,但存在一些區(qū)別。
class Base {
public:
virtual void func() = 0; // 純虛函數(shù)
};
class Derived : public Base {
public:
void func() override {
// 實(shí)現(xiàn)純虛函數(shù)
}
};
class AbstractBase {
public:
virtual void func() = 0; // 純虛函數(shù)
virtual void func2() {
// 非純虛函數(shù)
}
};
class ConcreteDerived : public AbstractBase {
public:
void func() override {
// 實(shí)現(xiàn)純虛函數(shù)
}
};
總的來(lái)說(shuō),純虛類是指所有的成員函數(shù)都是純虛函數(shù)的類,而抽象類是指含有至少一個(gè)純虛函數(shù)的類。在實(shí)際應(yīng)用中,抽象類更常見(jiàn),用于定義接口,而純虛類用于定義一些更加抽象的概念。