2

基本クラスの非仮想メソッド、または派生クラスの仮想メソッドまたは非仮想メソッドによってオーバーライド/非表示になっている C++ コード ベースがあります。ほとんどの場合、これはコードのエラーです。

コンパイラの警告やツールなどのケースを自動的にチェックするためにできることはありますか?

これは、派生クラスがベースから非仮想関数を非表示にするのを防ぐ、または同様のプロトタイプを使用して非仮想メソッドを非表示にするための警告がない (G++ 4.4) に似ていますが、既存のコードベースでこれらの問題を検出する実際の解決策を探しています。たぶん、隠し機能の警告だけで十分です(リストは1つずつ通過するのに十分小さいと思います)

コードベースを手動で変更して「オーバーライド」または「最終」などを追加することはできません。このチェックは 1 回だけ実行する必要があるためです。すべての非仮想関数を「最終的に」定義して、それらが非表示になるのを防ぐようなグローバルなソリューションは問題ありません。

Visual Studio 2012 を使用していますが、ubuntu と gcc にもアクセスできます。

4

0 に答える 0