
C++の学習に役立つ書籍を紹介します。右端の画像をクリックすると、Amazonの紹介ページへジャンプします。
☆の評価について・・・1個〜5個で評価。「レベル」は書籍内容の難易度・高度さを表す。「初級者」は、 初心者向けにオススメの度合いを表す。「中・上級者」は、ある程度の経験者向けにオススメの度合いを表す。
↓参考書籍とは別ですが、C++ に関する書籍です。常に更新されます↓
|
<クラスと継承完全制覇> レベル:☆ 初級者:☆☆☆☆ 中・上級者:☆ C言語の知識がある、C++の初学者のための入門書です。高度な内容には触れず、クラスの使い方について 詳細に説明しています。 最初に、構造体の復習から始まります。最後まで、同じような内容の例を通して解説しているので、イメージ しやすいと思います。 基本的な部分だけに絞っていますが、入門者には充分な内容です。確実な基礎知識を付けるために、最初に 読む本としてお勧めできます。他の分野でもそうですが、特にC++は曖昧なまま進むと、あまりの広大さに挫折 するので、時間をかけて基礎を学ぶことが必要です。そういう意味で、最初の1冊に。 |
|
<C++プログラミング入門> レベル:☆ 初級者:☆ 中・上級者:☆ タイトルそのままですが、C++の入門書です。 上で紹介した「クラスと継承完全制覇」と比較したら、こちらを選ぶ理由などありません。この本は、入門者 が独学するには辛いと思います。説明文自体は丁寧なのかも知れませんが、サンプルソースが断片的で、1つの プログラムが完全な形で載っている部分はほとんどありません。 初級者には辛いし、中・上級者が改めて得られるような知識も見当たりません。特に誰かに勧められるもの では無さそうです。 |
|
<プログラミング言語C++ 第3版> レベル:☆☆☆ 初級者:☆☆ 中・上級者:☆☆☆☆☆ C++の生みの親が書き上げた、C++のバイブルです。古い版とは違い、現在のC++の標準規格に沿って書かれています。 C++の細かい仕様を調べるとき、この本以上に正確なものは無いでしょう。欠点は、どうも索引が使いにくく、目的の ものを探し出すのが難しいことでしょうか・・。 一応、基礎の基礎から説明が始まってはいますが、初学者が読み解くのは難しいでしょう。この本の価値は、少なくとも 入門書を卒業してからでないと感じられません。仕事でC++を使う人、より詳細に知りたい人は、購入をためらう必要は 無いと思います。ちょっと高いし、分厚いですが、その価値は言うまでもありません。 標準ライブラリに関しては、どちらかといえば、使い方を中心に触れているので、より実践的に学ぶなら「EffectiveSTL」、 辞書的に参照できることを望むなら「C++標準ライブラリ チュートリアル&リファレンス」のような別の本を薦めます。 |
|
<EffectiveC++ 原著第3版> レベル:☆☆☆ 初級者:☆☆ 中・上級者:☆☆☆☆☆ C++を本気で学ぶ人なら、避けては通れないとも言える、世界的に有名な書籍の最新版です。 C++を使いこなす上で、知っていなければならない(そして、意外なほど理解できていない or 気付いていない) 点を、55項目に分けて詳細に解説しています。時間をかけてじっくりと読み解いて欲しい本です。 既に、C++の入門レベルを終えている人が対象です。上級者からすれば、それほど高度なことを書いてある訳では 無いでしょうが、中級者は間違いなく必読です。C++に関係する他の様々な良書も、ほとんどはこの本の内容に影響を 受けています。 今回、第3版となり、C++の最新動向に合わせ、第2版までではそれほど深入りしていなかった、テンプレート関連 の項目も増えています。 |
|
<新訂版 More EffectiveC++> レベル:☆☆☆ 初級者:☆☆ 中・上級者:☆☆☆☆☆ 上の「Effective C++」の続編に当たる本です。「新訂版」とありますが、原著の方には変化が無いので、内容的 には以前のものと同じです。ですから、少々古くはなっていますが、依然として必読書でしょう。 内容としては、Effective C++ を更にもう一歩進めたもので、今回は 35項目に分けて解説されています。やはり、 C++プログラマなら必読の内容だと言えるでしょう。 日本語訳に難があると言われていた前回に比べると、大幅に改善されており、違和感は減ったと思います。 |
|
<EffectiveSTL> レベル:☆☆☆ 初級者:☆☆ 中・上級者:☆☆☆☆☆ 名著「EffectiveC++」の著者が書いた、STL版「EffectiveC++」です。 35個の項目に分け、STLを使っていく上で、知っていなければならない、気を付けなければならないことを詳細に 説明しています。STLを使うのなら必読ですが、一度はSTLを使ってみた人でないと、書いてあることは理解できない と思います。 自分で1から書くよりも遥かに簡単であることが、STLの売りの1つなので、使うだけなら簡単に使えてしまいます。 しかし、内部で何が行われているのか知っていないと、予想していなかった問題が起こってしまいがちです。 |
|
<Accelerated C++> レベル:☆☆ 初級者:☆☆ 中・上級者:☆☆ 「C++ in-Depth Series」の1冊。C++ を初めて学ぶ人に向けて書かれています。それどころか、C言語 の知識すら想定していません。 非常に珍しい構成の本であり、例えば、C言語の配列よりも前に、C++標準ライブラリの vector を解説 するように、C++ に用意されている便利なもの(つまり標準ライブラリ)を積極的に利用しています。 このような構成であるため、賛否両論あります。やはりC言語の基礎から学んでいくべきだと思う人は、 この本を薦めないでしょう。私的には、質問できる人が近くにいるのなら、確かに効率的に学習できる ようには思います。それ以外の人には薦めません。あるいは、多少 C++ を知っている人が、復習に使うのには いいかも知れないです。 |
|
<Essential C++> レベル:☆☆ 初級者:☆☆ 中・上級者:☆☆ 「C++ in-Depth Series」の1冊。C++全体を薄く扱った本です。 方向性としては、上記の「Accelerated C++」に近いと言えますが、こちらの方が易しいかも知れません。 とはいえ、やはり初めての人の自習書には向かないと思います。「Accelerated C++」と同様、ある程度 C++ を 知っている人の復習用にはいいかも知れません。 |
|
<ExceptionalC++> レベル:☆☆☆ 初級者:☆ 中・上級者:☆☆☆☆ 「C++ in-Depth Series」の1冊。紛らわしい名前の本がたくさんありますが、これも良書として挙げられます。 47項目に分けて解説していますが、実際には同じ内容を細かく分割した結果が47項目です。意外と簡単な内容 も多く含まれています。それでも入門書ではないので、知識は必要です。 大きな見所は、非常に詳細な例外機構に関する考察と、コンパイル時間を大幅を削減するための、コンパイラ ファイアウォールと呼ばれるテクニックでしょう。この2点だけのためでも、読む価値があります。中・上級者、 特に、ある程度の規模の開発に携わる人は一読を勧めます。 |
|
<C++ Coding Standards> レベル:☆☆ 初級者:☆☆☆ 中・上級者:☆☆☆☆☆ 「C++ in-Depth Series」の1冊。同シリーズの「ExceptionalC++」と「Modern C++ Design」 の著者の共著です。 構成としては、「Effective C++」に近く、こちらは101項目に渡って、C++のガイドラインを豊富に扱っています。 内容の重複も多く見受けられ、他の本を読んでいる人なら「どこかで見たな」と思うものが多々あります。 この本は、項目数が多いものの、ほとんどのものは1〜2ページで収められており、ちょっとの時間でも読み進められ ます。どのページも非常に有益な内容であり、間違いなく良書です。 |
|
<Modern C++ Design> レベル:☆☆☆☆☆ 初級者:☆ 中・上級者:☆☆☆☆ 「C++ in-Depth Series」の1冊。C++の最高峰とも言える最強の本。テンプレートを極限まで 使い倒した、テクニックを紹介します。テンプレートの想像を遥かに超えた使い方を知ることができるでしょう。 とにかく難解で、ちょっと日本語も読み辛い上、文章の間違いが非常に多いです(正誤表の確認必須)。しかし、 内容が悪い訳では決してありません。この本の内容が理解できれば、C++に関しては相当なレベルに達したと言える はずです。 私自身、理解できているとは言い難く、紹介していいものかとも思いましたが、有名な本なので掲載しておきました。 |
|
<EfficientC++ パフォーマンスプログラミングテクニック> レベル:☆☆☆ 初級者:☆☆ 中・上級者:☆☆☆☆ 副題にあるように、C++プログラムのパフォーマンス(性能)向上のテクニックをまとめた本です。 この本においてのパフォーマンスとは、基本的には処理速度のことを指しており、メモリ効率についての記述は 少なくなっています。 性能向上に関して強い興味のある人なら、一読を勧めます。実際に著者が行った実験の結果を、グラフにまとめ 掲載したものもあり、ここまで具体的に結果を示している本はあまり見かけません。 |
|
<C++の設計と進化> レベル:☆☆ 初級者:☆ 中・上級者:☆☆☆☆ C++の設計者によって書かれた読み物的な本です。 この本は、C++の使い方に関する解説書ではなく、なぜこのような言語仕様になっているのか、その歴史を 詳細に綴ったものです。実際には10年以上前に書かれた本ですが、その内容に古臭さはありません。 歴史的な経緯や、言語設計といったことに興味の無い人には、まったくもって不要な本です。逆に、そういった ことに興味の持てる人なら、強くお勧めできます。不可解に思える仕様の理由も判明することでしょう。 |
|
<C++標準ライブラリ チュートリアル&リファレンス> レベル:☆☆☆ 初級者:☆☆ 中・上級者:☆☆☆☆ C++標準ライブラリの詳細について。教科書的に読み進めるタイプではなく、辞書的に参照するタイプの本です。 全ての機能について、詳細に説明されており、それぞれにサンプルプログラムも添付されています。C++の文法 自体(一部、テンプレート等の知識も必要になる)は知っていることが前提になりますが、そういった知識がある のなら、これ1冊で標準ライブラリについてはカバーできます。 注意しなければならない点についても、丁寧に触れられており、良い本です。前述したように、C++についての 多少の知識があれば、それほど難なく理解できます。 |
|
<大規模C++ソフトウェアデザイン> レベル:☆☆☆☆ 初級者:☆ 中・上級者:☆☆☆☆ タイトルの通り、C++を用いた、大規模なソフトウェア開発の設計・開発技法をまとめた本です。かなりのページ 数と、かなりの値段ですが、大規模な開発に携わるのなら(中・小規模でも充分役立ちますが)、読んでおきたい (知っておきたい)内容です。 大規模開発においては、コンパイルにかかる時間でさえも大きな問題になります。また、各機能群の結合を抑える 手法、逆に結合させるべきとき、継承の正しい使い道、インライン化等の実行効率に関することなどなど。若干、読みにくい 日本語も見受けられますが、腰を据えて読んでおくべき内容でしょう。 2007年12月に新装版が出ました。
新装版 大規模C++ソフトウェアデザイン 私は持っていませんが、書店で軽く見た感じでは、内容に変化は無さそうです。ただ、紙質が薄くなっていて、 ページの裏の印刷が透けて見えてしまうのが気になりました。本文にラインを引くような人は注意、というところ でしょうか。 |