抽象基类(abstract base class)ABC
C++提供纯虚函数提供未实现的方法,纯虚函数声明的结尾处为=0,例如
class BaseEllipse
{
private:
double x;
double y;
...
public:
BaseElipse( double x0 = 0 , double y0 = 0 ) :x( x0 ) , y( y0 )
{
}
virtual ~BaseElipse()
{
}
void Move( int nx , int ny )
{
x = nx;
y = ny;
}
virtual double Area()const = 0; // a pure virtual function
...
}
当类声明包含纯虚函数时,不能创建该类的对象,因为包含纯虚函数的类只用作基类。要成为真正的ABC,必须至少包含一个纯虚函数
当派生类涉及到动动态内存分配时,,必须为派生类定义显式析构函数、复制构造函数和赋值操作符,派生类在处理相应问题时,必须调用基类的相关函数