C++11 override关键字
2023-06-06
12
0
override关键字用于指明被修饰的函数必须是重载了基类的函数。
在类的继承时,C++的基类中声名一个虚函数时,在子类中如果重载时,可以不需要再加virtual关键字。但有的时候,由于拼写的错误,并不能将函数名书写正确,所以重载就失败了,而这种问题在编译过程时并不报错,所以有时为了调试这个BUG,会耗费大量的时间。
以下代码
class A
{
public:
virtual void print()
{
}
};
class B : public A
{
public:
void pirnt() override //此处报错
{
}
};
我们在A类中实现了一个虚函数print,B类继承于A,所以我们需要重载print函数,但在并写时,误将print拼写成pirnt,而这个代码在编译时是没有错误产生时。
所以如果我们给B类中重载的函数pirnt加上 override,会强制编译器重载检查,这时会产生错误。