override声明的作用很简单,就是当你为子类改写从父类那里继承下来的成员函数时,如果因为各种原因,导致改写失败(失败原因有很多,例如形参类型错误、函数修饰词遗漏等等),将在编译时给你明确提示。

除了这个知识点,这里另外再介绍一个知识点,就是引用修饰词:

class Widget {
public:
    void dowork() &;  //*this是左值时被调用
    void dowork() &&; //*this是右值时被调用
}

Widget a;
a.dowork();  //调用 void dowork() &版本

makeWidget().dowork(); //调用 void dowork() &&版本