可能重复:
为什么纯虚函数初始化为0?
我知道,为了声明一个纯虚函数,你需要使用"= 0;" 语法,如下:
class Foo
{
protected:
Foo();
virtual int getValue() = 0;
};
Run Code Online (Sandbox Code Playgroud)
我的问题是,究竟是什么(在编译器的内部工作中)做"= 0;" 语法呢?它实际上是否将函数指针设置为零?它只是一个意图陈述,就像Java和C#中的"抽象"保留字一样,如果是这样,为什么不在语言中添加诸如"abstract"之类的保留字而不是使用这种神秘的语法?
它声明了一个“纯虚拟”函数。= 0基本上就像另一个“纯”关键字。这个问题与你的问题相关:为什么纯虚函数初始化为0?
纯虚函数根本没有主体,必须由继承它的任何类定义:http ://www.learncpp.com/cpp-tutorial/126-pure-virtual-functions-abstract-base-classes-and-接口类/