ISBN 9784798150239
独習C++ 新版
概要
C++17 のコア言語を基礎から体系的に習得する
想定読者
C++ を初めて学ぶシステム開発者・ゲームプログラマーで、サンプルプログラムを動かしながら段階的に習得したい人
こんな人には向いていない
- すでに C++ の基礎を習得済みで、テンプレートメタプログラミングや並行処理など高度な領域を深掘りしたい人には内容が基礎寄りすぎる
- オンライン学習サービスや無料リファレンスで基礎を補えると判断できる人にとっては、640 ページ分のコストパフォーマンスが合わない可能性がある
- C++ の最新規格(C++20 以降)の機能を網羅的に押さえたい人には、C++17 対応の本書では範囲が不十分
読了後にできるようになること
- C++17 のコア言語構文(型・制御構造・クラス・テンプレート)を体系的に説明できる
- クラス設計の基本(コンストラクタ・デストラクタ・演算子オーバーロード・継承)を実装として書ける
- 配列・ポインタ・右辺値参照の違いを理解し、メモリ管理の基礎を説明できる
- 標準ライブラリのデータ構造とアルゴリズム(STL コンテナ・イテレータ)を実務コードで使える
- 例外処理・RTTI・キャストの仕組みを把握し、安全なエラー処理を設計できる
- 各章末の練習問題を通じて、学習内容を自己確認するサイクルを回せる
本書のキー概念(章解説)
- 第 1 章 C++ 言語の基礎(その1) — 変数・型・制御構造など最初の足場を固める
- 第 2 章 C++ 言語の基礎(その2) — クラスの前提となる構文知識をまとめて習得
- 第 3 章 クラス — 本書の核心。コンストラクタ・デストラクタ・カプセル化を丁寧に解説
- 第 4 章 分割コンパイルとビルド — 実務で必要なヘッダ分離とリンク手順を解説
- 第 5 章 配列・ポインタと右辺値参照 — C++ 固有のメモリ管理の難所。丁寧に時間をかけて読む価値がある
- 第 6 章 演算子オーバーロード
- 第 7 章 継承 — 多態性・仮想関数の理解は OOP 応用の鍵
- 第 8 章 入出力システム
- 第 9 章 テンプレート — STL 活用の前提。概念を押さえるだけで本書として十分
- 第 10 章 例外処理
- 第 11 章 実行時型情報とキャスト演算子
- 第 12 章 データ構造とアルゴリズム
- 第 13 章 文字列処理
ハイライト
- 全13章を通して、C++のコア言語を中心とした基礎的な知識・概念・機能を、さまざまなサンプルプログラムを例示しながら詳細かつ丁寧に解説している(本書の構成方針が最も端的に示されている箇所。サンプル量の多さが他書との差別化ポイント)
外部からの言及
- C++ 学習の参考書としてリスト掲載されることはあるが、積極的な推薦文よりも「授業の課題用に購入したがオンラインリソースで足りた」という体験談も見られ、自習書としての費用対効果について評価が割れている(qiita)
- 本書の章構成に沿って学習メモを公開する記事が存在し、第2章(クラス・構造体・インライン関数)の内容が自習に使えると判断した読者がいることがわかる(qiita)
編集メモ
Qiita 検索で ISBN / 書名に言及する記事は 3 件以下、合計 likes は 30 未満。楽天ランキング履歴も取得できず。外部言及シグナルが薄いため supplementary と判定
読む前に押さえておきたいこと
- C 言語または他のプログラミング言語の基礎文法(変数・ループ・関数)の経験
- コンパイルとリンクの概念的な理解(コマンドラインでのビルド操作が初めての場合は第4章で時間を取る覚悟が必要)
学習のコツ
- 第3章(クラス)と第5章(配列・ポインタ・右辺値参照)は C++ 固有の難所。各節末の練習問題を省略せずに解くことで理解の穴を早期に発見できる
- 第4章(分割コンパイルとビルド)は後半の実践コードを書く上で前提となる。最初から正確に押さえることで後の混乱を防ぎやすい
- 第12章(データ構造とアルゴリズム)は STL 活用の出発点。読み終えた後に標準ライブラリのリファレンスと並行参照すると定着率が上がる
- 全13章を通読した後に、気になるプロジェクトで実際に C++ を書き始めると、各章の意味が再確認できる二周目の効果が得られやすい
出版社による内容紹介
本書は13の章と付録から構成。全13章を通して、C++のコア言語を中心とした基礎的な知識・概念・機能を、さまざまなサンプルプログラムを例示しながら詳細かつ丁寧に解説している。また、各章には「Note」などの囲み記事がいくつかあり、これらでは、特定の話題に関する補足情報や、本文で扱いきれなかった情報をまとめている。さらに、学習する内容について、具体的な操作例やサンプルプログラム、実行結果などを示している。実際に手を動かして、確認しながら学習を深めることができる。各章は、細かな内容の節に分かれており、節の末尾には、それまで学習した内容を確認する「練習問題」がある。
この本がどの学習段階で役立つかは、 関連する ロードマップ から確認できます。