C++ 什么是0;&引用;在C+中声明纯虚函数时执行+;?
可能重复:C++ 什么是0;&引用;在C+中声明纯虚函数时执行+;?,c++,virtual,C++,Virtual,可能重复: 我知道,为了声明纯虚函数,需要使用“=0;”语法,如下所示: class Foo { protected: Foo(); virtual int getValue() = 0; }; 我的问题是,“=0;”语法到底做了什么(在编译器的内部工作中)?它实际上是否将函数指针设置为零?它是否仅仅是一种意图陈述,就像Java和C#中的“抽象”保留字一样,如果是这样,为什么不在语言中添加一个保留字,比如“抽象”,而不是使用这种晦涩难懂的语法呢?它声明了一个“纯虚拟”函数
我知道,为了声明纯虚函数,需要使用“=0;”语法,如下所示:
class Foo
{
protected:
Foo();
virtual int getValue() = 0;
};
我的问题是,“=0;”语法到底做了什么(在编译器的内部工作中)?它实际上是否将函数指针设置为零?它是否仅仅是一种意图陈述,就像Java和C#中的“抽象”保留字一样,如果是这样,为什么不在语言中添加一个保留字,比如“抽象”,而不是使用这种晦涩难懂的语法呢?它声明了一个“纯虚拟”函数。=0基本上类似于另一个“pure”关键字。这个问题与你的有关:
纯虚拟函数根本没有主体,必须由继承它的任何类定义:,这表示没有“默认”实现。任何派生类都需要实现它。 它迫使您在子类中定义它。< /p>这个问题得到了解答。因为
static
!!)。@MatthieuM。C++11确实有一些上下文关键字,不过:)语法没有固有的含义。仅仅因为两个语法结构看起来有些相似,并不意味着它们也有相似的语义。