1. ホーム
  2. c++

[解決済み】C++の'override'キーワードは何のために使うのですか?重複

2022-04-01 03:10:23

質問

私はC++の初心者です。私は override キーワードは、私が作業しているヘッダーファイルで使用されています。このキーワードの本当の使い方を教えてください。 override 例題があればわかりやすいと思います。

どのように解決するのですか?

その override キーワードには2つの目的があります。

  1. このメソッドは、ベースクラスの仮想メソッドをオーバーライドする仮想メソッドであることを、コードの読者に示します。
  2. また、コンパイラーはオーバーライドであることを認識しているので、オーバーライドと思われる新しいメソッドを変更/追加していないかどうかを "チェック"することができます。

後者について説明します。

class base
{
  public:
    virtual int foo(float x) = 0; 
};


class derived: public base
{
   public:
     int foo(float x) override { ... } // OK
}

class derived2: public base
{
   public:
     int foo(int x) override { ... } // ERROR
};

derived2 を指定すると、コンパイラは "型の変更" というエラーを出します。がない場合 override という警告が表示されるだけです。