仮想関数が派生クラスでオーバーライドされた C++11 より前の時代には、意図を明確にするために派生クラス関数にも virtual キーワードを追加することが推奨されていました。
現在、そのような関数は「オーバーライド」とマークされており、仮想ベース関数が必要であるという概念が含まれています。したがって、私は今、仮想を省略することを好みます:
class Derived: public Base {
public:
void Overriden() override;
// Instead of: virtual void Overriden() override;
};
ただし、これにより MSVC 2012 で IntelliSense エラーが発生します。'override' 修飾子には、明示的な 'virtual' キーワードを使用した仮想関数の宣言が必要です。
明らかに、コンパイラはクラスをコンパイルしますが、エラーは私にそれについて考えさせます。virtual キーワードを追加する正当な理由はまだありますか?