override 关键字
作用:在成员函数声明或定义中, override 确保该函数为虚函数并覆写来自基类的虚函数。
位置:函数调用运算符之后,函数体或纯虚函数标识 “= 0” 之前。
使用以后有以下好处:
1.可以当注释用,方便阅读
2.告诉阅读你代码的人,这是方法的复写
3.编译器可以给你验证 override 对应的方法名是否是你父类中所有的,如果没有则报错.
override 使用举例
如果你想重写父类的方法,比如toString()方法:
#if 1
public :
virtual String toString() override {
//...
}
#else
public :
virtual String toString() override=0;
#endif
正确的是:
public :
String toString() override {
//...
}
假如不小心把方法名写错了而没写 override ,这时编译器是可以编译通过的,因为编译器以为这个方法是你的子类中自己增加的方法。如:
// 注意这里的小写方法,实际上是错误的。
public :
String tostring() {
//...
}
相反,如果你很机智,在知道自己要重写父类的方法,加上了 override 标签后,编译器会检查出重写方法错误,会保证你重写父类方法的正确性。
例子
#include<iostream>
using namespace std;
class base
{
public:
virtual void fun1(void)=0;
};
class derived : public base
{
public:
#if 1 //OK
void fun1(void) override {
cout << "a fun1" << std::endl;
}
#else // err
void fun2(void) override {
cout << "a fun1" << std::endl;
}
#endif
private:
/* data */
};
int main(int argc, char *argv[])
{
derived test;
test.fun1();
return 0;
}
总结:在重写方法时,最好加上这个 override 这个关键字 以 加强代码规范。
原文链接: https://www.cnblogs.com/schips/p/cpp11_override.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;
也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/329201
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!