非虚函数可以等于0吗?

时间:2016-10-16 21:05:48

标签: c++ virtual

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

void foo() = 0

关键字“虚拟”不在前面?

最佳

4 个答案:

答案 0 :(得分:6)

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

知道很明显,非虚拟功能不能被指定为纯虚拟。

但是,如果s基类具有您的类重写的虚函数,则不需要重复虚拟指示符,但是您可以将该函数标记为纯虚拟。

答案 1 :(得分:3)

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

答案 2 :(得分:3)

没有。

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

更新:如果函数覆盖其基类中的虚函数,则虚函数不一定以virtual关键字开头。

答案 3 :(得分:2)

virtual标记虚拟函数,= 0标记为纯虚拟 。一个非虚拟的,纯粹的功能......会是什么?

所以不,这不起作用。