AUTOSAR C++14 Rule M9-3-3
If a member function can be made static then it shall be made static, otherwise if it can be made const then it shall be made const
説明
ルール定義
メンバー関数は static にできる場合は static にされます。また、const にできる場合は const にされます。
根拠
const メンバー関数で、クラスのデータ メンバーに変更を加えることはできません。static メンバー関数で、クラスの非静的データ メンバーに変更を加えることはできません。メンバー関数でクラスの非静的データ メンバーに変更を加える必要がない場合は、メンバー関数を const または static として宣言して、データへのアクセスを制限します。このような宣言は明確に設計の意図を表し、強制します。つまり、不注意に const メンバー関数を使用してデータ メンバーに変更を加えようとすると、コンパイラがエラーを捕捉します。const 宣言を使用しないと、このような不注意によるエラーが、検出やデバッグが難しいバグにつながる可能性があります。
Polyspace 実装
チェッカーはこれらのチェックを次の順に実行します。
チェッカーはまず、クラスのメンバー関数がクラスのデータ メンバーにアクセスするかどうかをチェックします。データ メンバーにアクセスしない関数は static と宣言できます。
チェッカーはデータ メンバーにアクセスする関数をチェックして、関数がいずれかのデータ メンバーを変更するかどうかを判断します。データ メンバーを変更しない関数は const と宣言できます。
const メンバー関数での違反は、その関数がクラスのデータ メンバーにアクセスせず、static と宣言できることを意味します。
トラブルシューティング
ルール違反が想定されるものの、Polyspace® から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: クラス |
| カテゴリ: Required、Automated |