エントリーの編集

エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
共変型の戻り値とオーバーライドルールの緩和 | 闇夜のC++
記事へのコメント0件
- 注目コメント
- 新着コメント
このエントリーにコメントしてみましょう。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています

- バナー広告なし
- ミュート機能あり
- ダークモード搭載
関連記事
共変型の戻り値とオーバーライドルールの緩和 | 闇夜のC++
C++では、一般的に戻り値だけが異なるメソッドをオーバーライドすることはできません。 struct Base { v... C++では、一般的に戻り値だけが異なるメソッドをオーバーライドすることはできません。 struct Base { virtual int func() = 0; }; struct Derived : public Base { float func() override; // エラー!戻り値型が違うぞ! };引数が違えば別関数と扱われ、単にメソッドが増えるだけなのですが、引数が同じ場合はオーバーライド対象なので、このコードはコンパイルエラーとなります。 ただし、戻り値の型が異なっていても、その型が共変型であるならばコンパイルエラーにはなりません。 オーバーライドする仮想関数の戻り値の型は、オーバーライド元の関数のものと同じか、または「共変(covariant)」でなければならない。 __C++ランゲージクイックリファレンス ……聞き慣れないですね。 要するに「戻り値の型がクラス型の参照