MISRA C++:2008 Rule 11-0-1
Member data in non- POD class types shall be private.
説明
ルール定義
Member data in non- POD class types shall be private. 1
根拠
一般にアクセスできるデータ メンバーがクラスに含まれる場合、他のクラスと関数が、そのクラスのデータ メンバーと直接相互作用する可能性があります。クラスに変更が加えられた場合は、そのクラスを使用するクライアントの更新が必要になることがあります。クラスが POD (Plain Old Data) 型でない場合、そのクラスのデータ メンバーへのアクセスを制限することで、クラスのカプセル化が可能になります。このようにカプセル化されたクラスでは、クラスの実装の詳細が、クラスを使用するクライアントに対して不透明になります。クラスはその実装の制御を保持します。また、クラスを使用するクライアントに影響を与えることなく、クラスを個別に維持できます。
Polyspace 実装
Polyspace® は、POD 型ではないクラスに含まれる非プライベートのデータ メンバーにフラグを設定します。Polyspace は標準と同じ POD クラスの定義を使用します。
トラブルシューティング
ルール違反が想定されるものの、Polyspace から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: Member Access Control |
| カテゴリ: 必要 |
バージョン履歴
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.