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