final
指定某个虚函数不能在派生类中被覆盖,或者某个类不能被派生。
在继承关系中“中途”终止派生类的重载
override
指定一个虚函数覆盖另一个虚函数。
避免重载函数名拼写错误,函数原型不匹配,重写了非虚函数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
| #include <iostream> using namespace std;
class Base { virtual void Turing() = 0; virtual void Daaaaa() = 0; virtual void Va(int g) = 0; virtual void Z() const; virtual void Play() = 0; void Print(); };
class DerivedMid : public Base { void D(); void Play() final; };
class DerivedTop : public DerivedMid { void Turing() override; };
struct Base { virtual void foo(); }; struct A : Base { void foo() final; void bar() final; }; struct B final : A { void foo() override; }; struct C : B{};
struct A { virtual void foo(); void bar(); }; struct B : A { void foo() const override; void foo() override; void bar() override; };
int main() { return 0; }
|