第9部: Unity/C#との対応¶
C++の各概念を、Unity/C#経験者の既存知識に対応づけて理解する章です。合言葉は「似ているが同じではない」——対応表の「≒」の裏にある差分こそが、C++で事故る場所です。
ページ一覧¶
- デストラクタと Dispose / RAII と using
- ポインタと参照型 / 値セマンティクスと class・struct
- テンプレートとジェネリック
- 仮想関数と virtual/override / コンパイル時多態と実行時多態
- 関数ポインタと delegate / Observer と event
- ヘッダー分割と Assembly Definition
- ネイティブビルドと IL2CPP
- 手動メモリ管理と GC
- C++例外と C#例外
仕上げに 演習。
対応表(この章の地図)¶
| C#/Unity | C++ | 対応の質 |
|---|---|---|
| class(参照型) | クラス+ポインタ/参照(自分で選ぶ) | 要注意(既定が逆) |
| struct(値型) | クラス/構造体の値使用 | 近い |
| using / IDisposable | RAII / デストラクタ | C++の方が強い |
| ジェネリック | テンプレート | 見た目だけ似ている |
| delegate / event | 関数ポインタ+std::function+自作リスト | C#の方が言語サポート厚い |
| Assembly Definition | ヘッダー+ライブラリ分割 | 目的は同じ、仕組みは別物 |
| GC | 所有権+スマートポインタ | 哲学が異なる |
| 例外(常用) | 例外(選択制) | 文化が異なる |