非虚拟函数可以等于0,例如
void foo() = 0
关键字“虚拟”不在前面?
最佳
答案 0 :(得分:6)
它不是一个等于零的函数,它是纯虚函数的指示符。
知道很明显,非虚拟功能不能被指定为纯虚拟。
但是,如果s基类具有您的类重写的虚函数,则不需要重复虚拟指示符,但是您可以将该函数标记为纯虚拟。
答案 1 :(得分:3)
= 0
并不意味着该函数为null。它只是告诉编译器这是纯虚函数的语法。你不能拥有纯粹的非虚函数,因为实例化这样的类是不可能的,并且不可能覆盖子类中的函数。但是,您显示的代码可能出现在程序foo()
中,在父类中声明为虚拟。
答案 2 :(得分:3)
没有。
当应用于虚拟函数时,= 0
使其成为纯虚拟函数。它对非虚函数没有任何意义。
更新:如果函数覆盖其基类中的虚函数,则虚函数不一定以virtual
关键字开头。
答案 3 :(得分:2)
virtual
标记虚拟函数,= 0
标记为纯虚拟 。一个非虚拟的,纯粹的功能......会是什么?
所以不,这不起作用。