このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
MISRA C++:2008 Rule 10-2-1
All accessible entity names within a multiple inheritance hierarchy should be unique.
説明
ルール定義
All accessible entity names within a multiple inheritance hierarchy should be unique. 1
根拠
同じ継承階層内に同名のデータ メンバーと非バーチャル関数があると、開発者の混乱を招くおそれがあります。開発者が使用する予定のエンティティが、コンパイラにより選択されるエンティティではない可能性があります。多重継承階層内でアクセス可能なエンティティに一意でない名前を使用することを回避します。
Polyspace 実装
このチェッカーは、同一の派生クラスに属する個々のクラスのエンティティの名前があいまいな場合に、これらのエンティティにフラグを設定します。次の場合にエンティティの名前があいまいになります。
2 つの変数が、型が異なる場合でも同じ名前を共有している。
2 つの関数が同じ名前、同じパラメーター、同じ戻り値の型を共有している。
派生クラス内でアクセスされるデータ メンバーがあいまいな場合、Polyspace® はこの問題をコーディング ルール違反ではなくコンパイルの問題として報告します。チェッカーは、メンバー関数とデータ メンバーなど、異なる種類のエンティティ間における競合をチェックしません。
トラブルシューティング
ルール違反が想定されるものの、Polyspace から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
グループ: Derived Classes |
カテゴリ: 推奨 |
バージョン履歴
R2013b で導入
1 All MISRA coding rules and directives are © Copyright The MISRA Consortium Limited 2021.
The MISRA coding standards referenced in the Polyspace Bug Finder™ documentation are from the following MISRA standards:
MISRA C:2004
MISRA C:2012
MISRA C:2023
MISRA C++:2008
MISRA C++:2023
MISRA and MISRA C are registered trademarks of The MISRA Consortium Limited 2021.