スラスラわかる C++ 第 3 版
スラスラワカルシープラスプラスダイサンハン
- 著者:
- 矢沢 久雄(ヤザワ ヒサオ)
- 出版社:
- 翔泳社
- 出版日:
- 2022年07月19日頃
- ISBN:
- 9784798172941
- 在庫:
- 在庫あり
なぜ注目されているか
書籍紹介
技書の森解説
『スラスラわかる C++ 第 3 版』 (矢沢 久雄 著、翔泳社、2022 年 7 月刊) は、はじめてプログラミングを学ぶ人に向けて、プログラミングの基礎知識と C++ の言語構文を学ぶ入門書です。版元は、C++ に必須の構文やクラスを網羅し、初学者向けにやさしく解説した本と案内しています。第 3 版について版元は、GNU プロジェクトのコンパイラーである GCC を使い、Windows の利用者だけでなく Mac の利用者も学べるように配慮したと説明しており、macOS での学習環境の構築方法は本書の付属データの PDF で提供されています。
全 10 章の構成、プログラミングの準備からテンプレートと STL まで
目次は第 1 章「プログラミングの準備をする」から第 10 章「テンプレートと STL」までの全 10 章と付録です。第 2 章「役に立つプログラムを作る (C++ の基本構文)」と第 3 章「条件に応じた分岐と繰り返し」で構文の基本を押さえ、第 4 章「プログラムを関数で部品化する」と第 5 章「プログラムをクラスで部品化する」で、処理をまとめる単位を関数からクラスへ広げます。続く第 6 章「クラスがあるから表現できること」、第 7 章「オーバーライドとオーバーロード」、第 8 章「コピーコンストラクタと代入演算子のオーバーロード」はクラスに関わる仕組みを章ごとに取り上げ、第 9 章「エラー処理とファイル処理」を経て、第 10 章でテンプレートと標準ライブラリの STL に進みます。
学び方にも特徴があります。版元の紹介によると、本書は 1 つのプログラムをテーマに沿って改造していく形で進み、ソースコード中の改造箇所は色分けされています。章末には理解度を確認するテストが置かれ、学んだことをその場で確かめられます。文法の項目を 1 つずつ切り離して覚えるのではなく、同じプログラムが少しずつ育っていく過程を追うので、新しく学んだ構文がプログラムのどこで効いているのかを見失いにくい構成です。
クラス、オーバーライド、コピーの扱いを支える技術背景
C++ は C 言語にクラスなどの機能を加えた言語です。クラスはデータとそれを操作する関数を 1 つにまとめる単位で、オブジェクト指向 の考え方を言語の文法として表したものです。基底クラスの関数を派生クラスで上書きするオーバーライドは、呼び出す側のコードを変えずに型ごとの処理へ振り分ける ポリモーフィズム の土台になります。一方のオーバーロードは、同じ名前の関数や演算子を引数の型に応じて使い分ける仕組みで、名前は似ていても役割は別物です。第 7 章の章題に並ぶこの 2 つは、名前が似ているぶん初学者が混同しやすい組み合わせです。
第 8 章の題に並ぶコピーコンストラクタと代入演算子は、C++ に特有の論点です。C++ ではオブジェクトを値として複製する場面が多く、メモリなどの資源を抱えるクラスでは、複製の方法を自分で定めないと、2 つのオブジェクトが同じ資源を指したまま二重に解放するといった誤りにつながります。メモリの後始末を実行環境に任せる言語から入った人ほど、つまずきやすい部分です。第 10 章のテンプレートは、型を引数のように扱って同じ処理を複数の型に使える関数やクラスを書く仕組みで、STL のコンテナやアルゴリズムはこの仕組みの上に作られています。本書が使う GCC は GNU プロジェクトの コンパイラー で、C++ の規格の版や GCC の版は刊行時点の前提です。
C++ が初めての人と、一度挫折した人に向く入門書
版元が挙げる対象読者は、本書ではじめてプログラミングを行う人、これまでに C++ を学ぼうと思ったことがあるけれど挫折してしまった人、一生使えるプログラミングの知識を C++ で身につけたいと思っている人の 3 つです。第 1 章で準備から始めるので、プログラミングの経験が無くても入れます。反対に、C++ の基本構文をすでに書ける人が、規格の新しい機能や並行処理、大規模な設計の作法を学びたい場合は、目次の章題にそれらは立っておらず、別の本が目的に近づきます。hanmoto には旧版の ISBN として 9784798153872 が登録されており、旧版を持っている人は、第 3 版は GCC を使い Mac でも学べるよう配慮したと版元が案内している点を踏まえて、買い替えを判断できます。
C++ を一度は学ぼうとして途中で手が止まった人や、最初の言語として C++ を選んだ人にとって、1 つのプログラムを改造しながら構文とクラスの仕組みを順に積み上げられる本書は、テンプレートと STL の入口まで迷わずにたどり着くための 1 冊です。
言及した記事 (1 件)
矢沢 久雄 の他の書籍
関連記事
関連用語
プログラミング
コンピューターに実行させる手順をプログラミング言語で記述し、動作を作り出す行為
競技プログラミング
与えられた問題を制限時間内に正確 / 高速に解くプログラミング競技
依存グラフとは - モジュール間の依存関係を可視化する方法
依存グラフはパッケージやモジュール間の依存関係を有向グラフで表現する手法。循環依存の検出 / ビルド順序の決定 / 影響範囲分析での活用法を解説
Ruby
開発者の生産性と楽しさを重視した、日本発のオブジェクト指向プログラミング言語
Scala
オブジェクト指向と関数型を融合した JVM 言語。大規模データ処理でも使われる
グラフアルゴリズム
ノードとエッジで構成されるグラフ構造に対する探索 / 最短経路 / 接続性の分析アルゴリズム