MISRA C++:2008 Rule 10-1-3
An accessible base class shall not be both virtual and nonvirtual in the same hierarchy.
説明
ルール定義
An accessible base class shall not be both virtual and nonvirtual in the same hierarchy. 1
根拠
チェッカーは、同じ派生クラス内において、同じクラスがバーチャル基底クラスとして継承されながら、非バーチャル基底クラスとしても継承されている状況にフラグを設定します。この状況はバーチャル継承の目的を台無しにするものであり、派生クラス オブジェクト内で基底クラスのサブオブジェクトのコピーが複数生じる原因になります。
トラブルシューティング
ルール違反が想定されるものの、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.