在C++中,抽象類是一種不能被實例化的類,它通常用作基類來定義接口和實現(xiàn)一些通用的功能
class AbstractClass {
public:
// 構(gòu)造函數(shù)
AbstractClass() {
// ...
}
// 虛析構(gòu)函數(shù),以確保派生類的析構(gòu)函數(shù)被正確調(diào)用
virtual ~AbstractClass() {
// ...
}
// 純虛函數(shù),沒有定義實現(xiàn)
virtual void pureVirtualFunction() = 0;
};
在這個例子中,AbstractClass
是一個抽象類,因為它包含了一個純虛函數(shù) pureVirtualFunction()
。純虛函數(shù)的定義以= 0
結(jié)尾,這意味著任何繼承自 AbstractClass
的派生類都必須提供這個函數(shù)的實現(xiàn)。
class DerivedClass : public AbstractClass {
public:
// 構(gòu)造函數(shù)
DerivedClass() {
// ...
}
// 析構(gòu)函數(shù)
~DerivedClass() {
// ...
}
// 實現(xiàn)純虛函數(shù)
void pureVirtualFunction() override {
// ...
}
};
在這個例子中,DerivedClass
繼承自 AbstractClass
并實現(xiàn)了 pureVirtualFunction()
?,F(xiàn)在,DerivedClass
可以被實例化,并且可以用來創(chuàng)建對象,這些對象可以調(diào)用 pureVirtualFunction()
函數(shù)。