学習ロードマップ

モダン C++ 入門

C++11 以降の記法とコア言語仕様を押さえ、OOP / テンプレート / 実戦コードまで踏み込む 5 冊構成の学習ロードマップ。

やさしいC++ 第5版 独習C++ 新版 江添亮のC++入門 新・明解C++で学ぶオブジェクト指向プログラミング ゲームプログラミングC++
SCROLL TO BEGIN

このロードマップが扱うもの

- C++ C - C++98 auto / / 使 - C++

このロードマップの全体像

対象読者

  • 他言語の経験はあるが C++ は未履修、または C の知識で止まっているエンジニア
  • C++98 の書き方から抜け出せず、auto / ラムダ / スマートポインタを使いこなせていない中級者
  • ゲーム・組込み・パフォーマンス領域で C++ を実戦投入する必要がある読者

5 冊で到達する状態

  • 変数・ポインタ・参照・値カテゴリの違いを説明でき、未定義動作を避ける判断ができる
  • クラス・継承・仮想関数・テンプレートの役割を整理し、過剰設計を避けた設計ができる
  • auto / range-based for / ラムダ / スマートポインタなど C++11 以降の語彙で書ける
  • RAII とムーブセマンティクスを前提に、所有権を意識したコードを組み立てられる
  • ゲームやツール開発など具体的な題材で、言語機能を組み合わせた中規模実装に踏み込める

進め方のヒント

  • 1 冊目で文法の全景を掴み、2 冊目でコア仕様を章単位で詰める
  • 3 冊目のモダン機能は写経よりも「旧 C++ コードを書き換える」演習が効く
  • 4 冊目で OOP とテンプレートの使い分けを言語化し、5 冊目で設計判断を実戦に接続する

ロードマップ

5 つのステップで読み進める

  1. 01
    ステップ 01 完全初心者からの最短入門
    やさしいC++ 第5版
  2. 02
    ステップ 02 コア言語を章単位で体系化
    独習C++ 新版
  3. 03
    ステップ 03 C++20 視野でモダン機能を獲得
    江添亮のC++入門
  4. 04
    ステップ 04 OOP とテンプレートの設計判断
    新・明解C++で学ぶオブジェクト指向プログラミング
  5. 05
    ステップ 05 ゲーム題材で実戦投入
    ゲームプログラミングC++

第 1 章

完全初心者からの最短入門

  1. 完全初心者からの最短入門

    プログラミング未経験者にも伝わる平易な解説で、C++ の語彙と文法の全景を掴む起点。まずここで読める状態を作る。

    やさしいC++ 第5版
    この章の 1 冊 やさしいC++ 第5版

    プログラミング未経験者がC++の基本文法からオブジェクト指向まで習得する

    この本で身につくこと
    • 変数・関数・配列・条件分岐・繰り返しといったC++の基本文法を実際にコードを書きながら理解できる
    • クラスとオブジェクトの概念、メンバ変数・メンバ関数の設計方法を習得できる
    • 継承・ポリモーフィズムといったオブジェクト指向の主要概念をC++で実装できる
    • サンプルプログラムを写して動かすことでプログラミングの試行錯誤の習慣を身につけられる

    想定読者: プログラミング自体が初めての人、またはC++を初めて学ぶ人。丁寧な解説とイラストを通じて段階的に習得したい層

    本の詳細を見る →
  2. コア言語を章単位で体系化

    クラス・継承・テンプレート・例外までを丁寧に積み上げる定番書。1 冊目で拾った概念を仕様ベースで整理する背骨にする。

    独習C++ 新版
    この章の 1 冊 独習C++ 新版

    C++17 のコア言語を基礎から体系的に習得する

    この本で身につくこと
    • C++17 のコア言語構文(型・制御構造・クラス・テンプレート)を体系的に説明できる
    • クラス設計の基本(コンストラクタ・デストラクタ・演算子オーバーロード・継承)を実装として書ける
    • 配列・ポインタ・右辺値参照の違いを理解し、メモリ管理の基礎を説明できる
    • 標準ライブラリのデータ構造とアルゴリズム(STL コンテナ・イテレータ)を実務コードで使える

    想定読者: C++ を初めて学ぶシステム開発者・ゲームプログラマーで、サンプルプログラムを動かしながら段階的に習得したい人

    本の詳細を見る →
  3. C++20 視野でモダン機能を獲得

    auto / ラムダ / ムーブ / スマートポインタなど現行規格を前提に書き直す視点を与える。旧来の書き方から脱する段階で読む。

    江添亮のC++入門
    この章の 1 冊 江添亮のC++入門

    知識のブートストラップ方式でC++を基礎から実装レベルまで習得する

    この本で身につくこと
    • Makefileを使ったビルドとコンパイルエラーメッセージの読み解き方
    • lvalueリファレンス・rvalueリファレンス・ムーブセマンティクスの動作原理
    • テンプレートを使った汎用コンテナ(vectorなど)の実装手順
    • スマートポインターによる安全な動的メモリ管理

    想定読者: 他言語の経験があり、C++を体系的に学び直したいプログラマー。ポインター・ムーブセマンティクス・テンプレートまで一冊で到達したい人。

    本の詳細を見る →
  4. OOP とテンプレートの設計判断

    派生・仮想関数・抽象クラス・クラステンプレートを題材に設計の勘所を掴む。過剰継承を避けるための言語化をここで行う。

    新・明解C++で学ぶオブジェクト指向プログラミング
    この章の 1 冊 新・明解C++で学ぶオブジェクト指向プログラミング

    C++でクラス設計から多相性・テンプレートまでをひとつながりに習得する

    この本で身につくこと
    • クラスの設計方針——データと手続きをまとめる意味をコード例で理解できる
    • 派生・継承の仕組みと多重継承のトレードオフを実装レベルで把握できる
    • 仮想関数と動的多相性(ポリモーフィズム)を抽象クラスと組み合わせて設計できる
    • RAIIパターンを用いたリソース管理と例外処理の正しい書き方を身につけられる

    想定読者: 『新・明解C++入門』でC++の基礎を一通り学んだ人、またはC言語経験を持ちオブジェクト指向の核心を体系的に押さえたい学習者

    本の詳細を見る →
  5. ゲーム題材で実戦投入

    3D・サウンド・AI まで含むゲーム開発を通し、言語機能を組み合わせて中規模設計に落とし込む応用到達点として置く。

    ゲームプログラミングC++
    この章の 1 冊 ゲームプログラミングC++

    C++でゲームエンジンの基礎を一から実装して理解する

    この本で身につくこと
    • ゲームループ(ProcessInput / UpdateGame / GenerateOutput)の構造と、vsyncを使ったフレームレート制御を実装できる
    • SDL2を用いた2Dスプライト描画とダブルバッファリングの仕組みを理解し、自力でウィンドウ描画パイプラインを組める
    • OpenGLシェーダーとVAO/VBO/EBOの仕組みを理解し、3Dグラフィックスのレンダリングパイプラインを一から実装できる
    • ベクトル演算・衝突検知・物理シミュレーションの基礎をゲームコード内に組み込める

    想定読者: C++の基礎文法を習得済みで、SDL2/OpenGLを使ったゲーム開発の実装原理を体系的に学びたい人。ゲーム会社の新卒入社前に基礎力を固めたい学生や、個人ゲーム開発者。

    本の詳細を見る →