1. ホーム
  2. c++

[解決済み】「override」キーワードは、オーバーライドされた仮想メソッドをチェックするだけのものですか?

2022-04-18 19:02:35

質問

私の理解では override というキーワードは、C++11では実装される関数が override のイング virtual 関数をベースクラスで使用します。

これで終わり?

解決方法は?

確かにその通りですね。ポイントは、何を意味しているのかを明示することで、そうでなければ沈黙してしまうエラーを診断することができるのです。

struct Base
{
    virtual int foo() const;
};

struct Derived : Base
{
    virtual int foo()   // whoops!
    {
       // ...
    }
};

上記のコードはコンパイルできますが、あなたが意図したものではありません。 const ). もし、代わりに virtual int foo() override というコンパイラーエラーが発生します。