Skip to main content

C++の授業

C++講義計画(C言語からの移行・ゲームオブジェクト構築まで)

🎯 目標

C言語を半年学んだ学生が、C++の基礎文法からオブジェクト指向(継承・ポリモーフィズム)を学び、最終的に GameObject クラスを継承してプレイヤーや敵を実装できるようにする。


🧭 全体構成(全15回想定)

テーマ技術目標演習例

1

C++導入・Cとの違い

iostream / 名前空間 / new / delete

Cのprintf版→C++出力へ書き換え

2

関数と参照・オーバーロード

参照渡し・デフォルト引数・関数多重定義

距離計算関数のオーバーロード

3

クラス・コンストラクタ入門

class / public / private / this

Vector2構造体→Vector2クラス化

4

クラスの設計とヘッダ分離

.h / .cpp 分離と include 管理

Vector2, Rect クラス実装

5

動的メモリとコンテナ基礎

new/delete, std::vector

std::vectorで敵リストを作る

6

コンストラクタ/デストラクタ/コピー

RAIIの考え方

ファイル読み込み管理クラス

7

継承入門

Base / Derived クラス / protected

EnemySlime, Bat など作る

8

仮想関数とポリモーフィズム

virtual, override, GameObject*管理

GameObject 基底で Draw/Updateを仮想化

9

純粋仮想関数・抽象クラス

=0 の概念、基底クラス設計

GameObject を抽象化して管理リストに追加

10

スマートポインタ・メモリ安全化

std::unique_ptr, std::shared_ptr

std::vector<unique_ptr<GameObject>>

11

継承+多態性の活用

virtual呼び出しと override確認

Enemy / Player / Item を一括更新

12

クラス間関係・静的メンバ

static, const, クラス内定数

ObjectManager 実装

13

名前空間・クラス分割整理

namespace, include guard

game/, engine/ に分離

14

総合演習:ミニゲーム制作

ゲームループ構築

コンソール or DxLibで動作確認

15

発表・振り返り

設計比較・自己評価

ソース+UML提出・口頭説明


🧩 ステップ詳細

STEP 1〜4:C++基礎をCとの違いで理解

  • Cの書き方との比較で、スムーズに導入。
  • printf→std::cout、struct→class、malloc→new など差分理解。

STEP 5〜6:クラスとメモリ管理

  • C構造体+関数をクラスに統合。
  • vector と RAII の基本を体験。

STEP 7〜9:継承とポリモーフィズム

  • GameObjectvirtual void Update() を持たせて多態の体験。
  • Player, Enemy, Item の派生クラスを一括更新。

for (auto obj : objects) obj->Update();

STEP 10〜11:メモリ安全化

  • unique_ptr導入でC言語的delete漏れを防止。
  • ObjectManager による一元管理へ。

STEP 12〜15:まとめとゲーム制作

  • 名前空間整理とクラス分離で設計の見通しをよくする。
  • 最終的にプレイヤー・敵・アイテムなどをGameObject継承で統合。

🎮 最終課題例

タイプ

内容

コンソールRPG

Character 継承で Player / Enemy を共通管理

2Dアクション (DxLib)

GameObject継承で Ball / Block / Paddle 管理

スネーク風ゲーム

GameObject多態性で SnakeHead / Fruit 管理


📘 授業設計のポイント

  • 毎回「CからC++へどう変わるか」を比較して示す。
  • すぐ動かせるコード例を提示。
  • 最終回で「OOPでコードがどう整理されたか」を可視化する。

💡 まとめ

15回で「C構文→クラス→継承→仮想関数→安全なゲーム構造」まで自然に到達できる構成。 最終的には、ポリモーフィズムを使ってGameObjectを扱う“C++らしいゲーム設計”を完成させる。