非虚函数可以等于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.
中的虚函数的情况下
非虚函数是否可以等于 0,例如
void foo() = 0
哪里关键字virtual
不在前面?
= 0
并不意味着该函数为空。它只是一种告诉编译器这是纯虚函数的语法。你不能有纯非虚函数,因为不可能实例化这样的 class 并且不可能覆盖子 classes 中的函数。但是您显示的代码可能出现在程序中 foo()
在父 class.
virtual
将函数标记为虚函数,= 0
将其标记为纯虚函数 此外 。一个非虚拟的纯函数...那会是什么?
所以不,那行不通。
它不是一个等于零的函数,它是一个纯虚函数的指示符。
知道了,非虚函数不能指定为纯虚就明白了
然而,如果 base class 有一个你的 class 覆盖的虚函数,你不需要重复虚函数指示符,但你可以将函数标记为纯虚函数.
没有。
应用于虚函数时,= 0
使其成为纯虚函数。它对非虚拟函数没有任何意义。
更新:虚函数不一定以 virtual
关键字开头,在函数重写其基 class.