非虚函数可以等于0吗?

Can a non-virtual function be equal to 0?

非虚函数是否可以等于 0,例如

void foo() = 0

哪里关键字virtual不在前面?

= 0 并不意味着该函数为空。它只是一种告诉编译器这是纯虚函数的语法。你不能有纯非虚函数,因为不可能实例化这样的 class 并且不可能覆盖子 classes 中的函数。但是您显示的代码可能出现在程序中 foo() 在父 class.

中声明为虚拟

virtual 将函数标记为虚函数,= 0 将其标记为纯虚函数 此外 。一个非虚拟的纯函数...那会是什么?

所以不,那行不通。

它不是一个等于零的函数,它是一个纯虚函数的指示符。

知道了,非虚函数不能指定为纯虚就明白了

然而,如果 base class 有一个你的 class 覆盖的虚函数,你不需要重复虚函数指示符,但你可以将函数标记为纯虚函数.

没有。

应用于虚函数时,= 0 使其成为纯虚函数。它对非虚拟函数没有任何意义。

更新:虚函数不一定以 virtual 关键字开头,在函数重写其基 class.

中的虚函数的情况下