AUTOSAR C++14 Rule A12-6-1
All class data members that are initialized by the constructor shall be initialized using member initializers
説明
ルール定義
All class data members that are initialized by the constructor shall be initialized using member initializers.
根拠
クラスのデータ メンバーを初期化するために、渡された値のコピーをコンストラクターの本体内のデータ メンバーに割り当てるのは非効率的です。たとえば、次のコードは非効率です。
class foo{
	
private:
	int i;
public:
	foo(int input){
		i = input;
		//...
	}
};- 初期化子リストを使用してデータ メンバーを初期化します。 
- 既定のメンバー初期化子を使用してデータ メンバーを初期化します。 
コードの効率を高め、コードで未初期化のデータ メンバーが使用されないようにするには、前述の方法を使用して、クラスのデータ メンバーを初期化します。
Polyspace 実装
渡された値をデータ メンバーにコピーすることによって、コンストラクターが本体内のクラスの非静的データ メンバーを初期化する場合に、Polyspace® はそのコンストラクター定義にフラグを設定します。Polyspace は、未初期化静的データ メンバーを含むコンストラクターにフラグを設定しません。
トラブルシューティング
ルール違反が想定されるものの、Polyspace から報告されない場合は、コーディング規約違反が想定どおりに表示されない理由の診断を参照してください。
例
チェック情報
| グループ: 特殊なメンバー関数 | 
| カテゴリ: Required、Automated | 
バージョン履歴
R2019a で導入