MISRA C++:2008 Rule 9-3-1
const member functions shall not return non-const pointers or references to class-data.
説明
ルール定義
const member functions shall not return non-const pointers or references to class-data. 1
根拠
const オブジェクトは、初期化後に変更できず、同じく const として宣言されているクラス メンバー関数しか呼び出すことができません。これらのメンバー関数がオブジェクトの状態を変更することは想定されていません。
const メンバー関数がクラスのデータ メンバーへの非 const ポインターまたは参照を返す場合は、開発者の想定に反して、この関数によってオブジェクトの状態が変更される可能性があります。この状況を回避するには、クラス データ メンバーへの参照またはポインターを返す const メンバー関数を定義するときに、戻り値の型を const として指定します。
Polyspace 実装
const メンバー関数が非 static データ メンバーへの非 const ポインターまたは参照を返す場合にのみ、Polyspace® はこのルールの違反にフラグを設定します。このルールは、static データ メンバーには適用されません。
トラブルシューティング
ルール違反が想定されるものの、Polyspace から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: 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.