——不能創建對象,只能派生出新類的類是抽象基類ABC(作為模板)。
純虛函數。
包含純虛函數的類是抽象基類。
純虛函數
純虛函數聲明:虛函數的結尾處加上=0。
C++通過使用純虛函數提供未實現的函數,但仍可以在實現文件中提供方法的定義。
class BaseEllipse // abstract base class { private: .... public: ... virtual double Area() const = 0; // a pure virtual function ... }
給出方法定義:
void BaseEllipse::Move(int nx, ny) { x = nx; y= ny; }
抽象基類ABC
在原型中使用=0(即至少聲明一個純虛成員函數)指出類是一個抽象基類,在類中不可以定義該函數。
類聲明中包含純虛函數時,不能創建該類的對象。
使用抽象基類派生出的類被稱為具體類,這表示可以創建這些類型的對象。
ABC理念
ABC要求具體派生類覆蓋其純虛函數(實現)——迫使派生類遵循ABC設置的接口規則。
-----