我知道,为了声明一个纯虚函数,你需要使用“= 0;”语法,如:
class Foo
{
protected:
Foo();
virtual int getValue() = 0;
};
我的问题是,(在编译器的内部工作中)究竟是什么“= 0;”语法呢?它实际上是否将函数指针设置为零?它只是一个意图陈述,就像Java和C#中的“抽象”保留字一样,如果是这样,为什么不在语言中添加诸如“abstract”之类的保留字而不是使用这种神秘的语法? / p>
答案 0 :(得分:1)
它声明了一个'纯虚拟'功能。 = 0 基本上是,就像另一个'纯'关键字一样。此问题与您的问题有关:Why is a pure virtual function initialized by 0?
纯虚函数根本没有主体,必须由任何继承它的类定义:http://www.learncpp.com/cpp-tutorial/126-pure-virtual-functions-abstract-base-classes-and-interface-classes/
答案 1 :(得分:0)
这表示没有“默认”实施。任何派生类都需要实现它。
答案 2 :(得分:0)
它强制您在子类中定义它。