これは基本的にベスト プラクティスの質問であり、 の使用目的に関する質問ですoverride
。
struct A
{
virtual void func();
};
struct B : public A
{
virtual void func() override;
};
上記の場合、 を使用するのは完全に合理的override
です。B
これは、仮想関数をfunc
オーバーライドすることをユーザーに伝えますA
(C++11 より前のコメントでのみ伝えることができた情報)。A
しかし、ユーザーがそれが基本クラスであると認識してはならない場合はどうでしょう... がA
完全にprivate
継承されている場合のように:
struct B : private A
{
virtual void func() override;
};
この場合、ユーザーがB
存在を知ってはならない内部実装の詳細についてユーザーに伝えています。の目的が、ライターが実際に何もオーバーライドしなかった場合にoverride
ライターにエラーを与えることである場合は、それで問題ありません。B
しかし、目的がより多くの情報をユーザーに伝えることである場合、この場合は書くべきではないでしょうか?override