誤ったオブジェクト指向プログラミング
this ポインターの動的な型が不適切
説明
クラスのメンバー関数の呼び出しに対するこのチェックでは、呼び出しが有効であるかどうかを判別します。
メンバー関数の呼び出しは、次のような理由で無効になることがあります。
メンバー関数をその関数を指す関数ポインターを介して呼び出しています。しかし、関数と関数ポインターで引数または戻り値のデータ型が一致していません。
純粋な
virtualメンバー関数をクラスのコンストラクターまたはデストラクターから呼び出しています。virtualメンバー関数の呼び出しで使用しているthisポインターが正しくありません。関数の呼び出しに使用するオブジェクトのアドレスがthisポインターに格納されています。thisポインターが正しくない理由は次のとおりです。オブジェクトを別のオブジェクトからのキャストによって取得しています。それらのオブジェクトが、関連のない 2 つのクラスのインスタンスになっています。
オブジェクトの配列を指すポインターに対してポインター演算を実行しています。しかし、そのポインター演算によってポインターが配列の範囲外になっています。ポインターをデリファレンスしたときに、有効なオブジェクトを指さなくなります。
このチェックの診断
例
チェック情報
| グループ: C++ |
| 言語: C++ |
| 頭字語: OOP |