C++语言程序设计

上面我们已经看到：基类Vehicle包含有自己的、具体的message虚函数的实现。在C++中，也可以在基类中仅定义虚函数的信号：函数的名字、返回类型和参数，而没有实现，但在派生类中必须有该虚函数实现。
仅定义了函数的信号，而没有函数实现的虚函数称之为纯虚函数。定义纯虚函数的方法是在虚函数参数表右边的括号后加一个"=0"的后缀，例如：
class vehicle
{
…
virtual void message(void) = 0;
};
上面这段代码中，我们便把vehicle的message成员函数定义为纯虚函数。含有纯虚函数的类，我们称之为抽象类，_______。所以，抽象类也称之为抽象的基类。
下面，我们再看一个抽象类的例子：
class CPolygon
{
protected:
int width, height;
public:
void set_values (int a, int b)
{ width=a; height=b; }
virtual int area (void) =0;
};
Cpolygon类的成员函数area被定义为纯虚函数，它返回int变量，没有参数。因为Cpolygon类包含了纯虚函数area，所以，它是一个抽象类，下面的定义：
CPolygon poly;
是错误的。我们虽然不能定义抽象类对象，但可以定义抽象类指针，例如：
CPolygon * ppoly1;
CPolygon * ppoly2
是完全正确的，这是因为基类的指针可以指向派生类的对象。