C++のoverrideをどのように呼び出すか。
C++で、overrideキーワードを使って基底クラスの仮想関数を明示的にオーバーライドすることができる。overrideキーワードの使い方は以下の通りです:
class Base {
public:
virtual void foo() const {
cout << "Base::foo()" << endl;
}
};
class Derived : public Base {
public:
void foo() const override {
cout << "Derived::foo()" << endl;
}
};
int main() {
Derived d;
d.foo(); // 调用Derived类中的foo()函数
return 0;
}
上記のサンプルコードでは、DerivedクラスはBaseクラスを継承し、Baseクラスの仮想関数foo()をオーバーライドしています。Derivedクラスのfoo()関数にoverrideキーワードを使うことで、コンパイラがその関数が本当に基本クラスの仮想関数をオーバーライドしているかを検証できます。
main()関数内で、Derivedクラスのオブジェクトdを作成し、そのfoo()関数を呼び出しました。foo()関数はオーバーライドされているため、コンパイラは自動的にDerivedクラス内のfoo()関数を呼び出し、結果として”Derived::foo()”という出力が行われます。