C言語スタイルのvoid*コールバックから型安全なメンバ関数ポインタ・委譲・イベントリスナー設計へ
ゲーム開発において「ボタンをクリックしたら技を出す」「敵を倒したらスコアを加算する」「タイマーが鳴ったら敵を湧かせる」といったイベント通知は設計の要です。C言語では `void (*callback)(void* userData)` によるコールバックが定番でしたが、型安全性の喪失とキャストミスによる即死クラッシュの温床でした。さらにC++では、クラスのメンバ関数は通常の関数ポインタとは全く異なる「多重継承や仮想関数に対応するための複雑な内部構造(最大16〜24バイト)」を持っています。本章では、メンバ関数ポインタの物理メモリ構造を解明し、モダンC++(C++11のラムダやstd::function)が登場する以前に現場のエンジニアが血と汗で築き上げた「型安全な委譲(Delegate)設計」をマスターします。
JavaScriptを実行すると、ブラウザ内インベーダーゲームエミュレータ、メモリマップ可視化、UMLクラス図、対話型解説、理解度クイズが起動します。