12 使用override关键字声明覆盖的函数
覆盖父类的虚函数的条件:
class Widget{ public: ... void doWork() &; void doWork() &&; };
Widget makeWidget(); Widget w; ... w.doWork(); makeWidget().doWork();
|
使用override减少错误
对于下面的代码,编译能正常进行,但是并不符合预期:
class Base { public: virtual void mf1() const; virtual void mf2(int x); virtual void mf3() &; void mf4() const; };
class Derived: public Base { public: virtual void mf1(); virtual void mf2(unsigned int x); virtual void mf3() &&; void mf4() const; };
|
使用override
关键字来让编译器发现错误:
class Base { public: virtual void mf1() const; virtual void mf2(int x); virtual void mf3() &; virtual void mf4() const; };
class Derived: public Base { public: virtual void mf1() const override; virtual void mf2(int x) override; virtual void mf3() & override; void mf4() const override; };
|