Kar*_*rus 26 c++ virtual overriding virtual-functions c++11
假设我有A
一个带有虚函数的类F()
:
class A
{
virtual void F()
{
// Do something
};
};
Run Code Online (Sandbox Code Playgroud)
我有另一个B
继承A
和重新定义的 类F()
:
class B : A
{
void F()
{
// Do something
};
};
Run Code Online (Sandbox Code Playgroud)
还有一个不同的类C
,它也继承了A
但是覆盖 F()
:
class C : A
{
void F() override
{
// Do something
};
};
Run Code Online (Sandbox Code Playgroud)
F()
课程B
和有C
什么区别?
Bat*_*eba 24
双方B::f()
并C::f()
都覆盖和他们正好相同.
override
本质上是一个编译时建议术语,如果该函数没有覆盖基类中的一个,将导致编译错误.
这有助于程序稳定性:如果要A::f()
更改名称和参数类型,则会产生编译错误.