在声明方法时,C++中= 0的含义是什么?

Rom*_*man 3 c++ visual-c++

= 0这个声明的部分意味着什么?

class KeyboardListener
{
  public:
    virtual bool keyPressed(void) = 0; 
} 
Run Code Online (Sandbox Code Playgroud)

Ker*_* SB 6

这意味着成员函数是纯虚拟的,这意味着它根本没有实现.因此,该类无法实例化(它变为"抽象"),并且它只能用作基类,其派生类必须(最终)实现虚拟成员函数.

一个例子是具有Animal纯虚拟成员函数的抽象类feed():由于每个动物总是具体(即衍生)动物的实例,因此不存在纯粹抽象的动物.虽然动物有一些喂食方式,但每种动物都没有通用的基本实施方法 - 我们只知道它feed()存在,但它必须始终由具体的衍生动物具体实施.

(请注意,您可以实际提供了一个纯虚函数的实现.你仍然不能实例化这样一个类,但是派生类可以调用基函数,这是非常有用的很少,可能风格差.)