我们通过在函数体的位置(即在声明语句的分号之前)书写=0就可以将一个虚函数说明为纯虚函数。其中=0只能出现在类内部的虚函数声明语句处。
class A
{
virtual int f() = 0; //声明为纯虚函数
};
注意,我们可以为纯虚函数提供定义,不过函数体必须定义在类的外部。也就是说,我们不能在类的内部为一个=0的函数提供函数体。
定义纯虚函数可以清晰的告诉用户当前这个函数是没有实际意义的。这样也就是各个派生类要自己从重新定义他自己的接口。
含有纯虚函数的类是抽象基类,我们不能创造抽象基类的对象。抽象基类负责定义接口,而后续的其他类可以覆盖该接口。