AUTOSAR C++14 Rule A10-3-3
Virtual functions shall not be introduced in a final class
説明
ルール定義
バーチャル関数は最終クラスで導入しないものとします。
根拠
virtual としての関数の宣言は、派生クラス内の関数を別の実装でオーバーライドすることを示します。これにより、1 つの関数で階層内の異なる複数のクラスと個別にやり取りすることができます。クラスを final として明示的に指定した場合は、そこからクラスを派生させることができません。final クラスからクラスを派生できないため、final クラスでバーチャル関数を導入しないでください。final クラス内のすべてのバーチャル関数は、指定子 final を使用して指定します。
Polyspace 実装
Polyspace® は、final クラス内のバーチャル関数の宣言にフラグを設定します。Polyspace は、指定子 override final または virtual final を使用する最終クラス内のバーチャル関数にフラグを設定しません。
トラブルシューティング
ルール違反が想定されるものの、Polyspace から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: 派生クラス |
| カテゴリ: Required、Automated |