カテゴリー: C++

  • 【書評】やさしいC++ 第4版 (「やさしい」シリーズ)

    やさしいC++ 第4版 の書評です。

    結論から言うと、とてもわかりやすいC++の入門書です。最初に読むC++本として最適な一冊。

    ■ 良い点
    ・ コードの例やその説明が簡単でわかりやすい
    ・ 基礎的な文法は一通り網羅されている
    ・ コードの省略がなく、結果の表示も掲載されている
    ・ 章ごとのまとめやチェックポイントが良い
    ・ 章末の『練習』で復習として知識の確認ができる
    ・ 他のシリーズ本と重複の箇所があるため学習コストが低い

    ■ 悪い点
    ・ 特に無い。あえて言えば、文章に平仮名が多い

    ■ 総評
    高橋麻奈さんによる、有名な『やさしい』シリーズのC++本です。

    内容的には、C++の一通りの文法が網羅されています。いわゆる難関とされる、「ポインタ」や「クラス」について、十分わかりやすく説明されています。ただ、C++は範囲が広いので、ページ数が若干多く、560ページほどあります。

    自分がこの本を選んで読んだ理由は、いわゆる「デザインパターン」に関するGoF本を読むためでした。C++で書かれ難解とされるGoF本も、この「やさしいC++」の知識でほぼ読了することができました。その点で、十分に満足できた一冊です。

    なお、本書は、「やさしいC 第4版」や「やさしいJava 第5版」などと構成がほぼ同じで、説明も重複している箇所があります。この点は、学習コストが下がって得と捉えるか、内容が重複しているため損と捉えるか、人によって異なるかもしれません。自分は学習コストが下がる方が良いので、この点は、得と考えます。

    これからプログラミングを始める人は、やさしいシリーズの「やさしいC」と「やさしいJava」そして、本書「やさしいC++」を併せて読むと言語間の違いが理解できるとともに、学習コストを抑えられるので良いかもしれません。

    また、C++がわからないため、GoFのデザインパターン本を読むのを躊躇している人にもお勧めの一冊です。

    やさしいC++ 第4版 (「やさしい」シリーズ)

  • 【書評】オブジェクト指向における再利用のためのデザインパターン

    オブジェクト指向における再利用のためのデザインパターン の書評です。

    結論から言うと、オブジェクト指向プログラミングの学習において、『デザインパターン』をマスターするなら必修の原典です。

    ■ 良い点
    ・ とにかくデザインパターンの理解が深まる
    ・ 実装上の注意点や代替案が豊富
    ・ 各パターンのバリエーションにも言及されている
    ・ 結果のトレードオフ(メリット・デメリット)がよく考慮されている
    ・ 他のパターンとの関連の説明が深い

    ■ 悪い点
    ・ 1999年の改訂版であり内容に古い箇所が散見される
    ・ 所々で理解が困難な記述がある
    ・ C++の言語仕様に依存した説明が少々ある

    ■ 総評
    いわずと知れた『デザインパターン』の古典的名著であり原典です。

    本書を読了すれば、デザインパターンの基礎はもちろん、各パターンの実装上の注意点や、パターンを採用する際のトレードオフ、他のパターンとの関連、そしてオブジェクト指向の本質まで深いレベルでマスターすることができるでしょう。

    ただ、メインの解説言語がC++ということで敬遠している人も多いのではないでしょうか。

    たしかに、C++がメインですが、JavaやPHP使いにとっても、本書を学習する価値は大いにあると思います。ちなみに、高橋麻奈さんの やさしいC++ 第4版 (「やさしい」シリーズ) を使ってC++の文法の学習をした後に本書を読んだところ、重要な箇所のコードはだいたい理解できました。

    また、予習として、結城氏のデザインパターン本 増補改訂版Java言語で学ぶデザインパターン入門 を読んでおくこともお勧めします。デザインパターンの学習の第一歩が本書のGoF本だと、かなりハードルが高いと思います。お勧めは、結城本と本書を交互に参照しながら読み進めることです。

    つまり、やさしいC++等の書籍で言語の予習をして、結城本でデザインパターンの予習をしておくと挫折せずに読み終えることができると思います。

    ただし、言語を問わず、オブジェクト指向の基礎が理解できていることが前提ですので、カプセル化、継承、ポリモーフィズム等の基礎知識は必要です。

    量的には、約400ページほどで結構なボリュームがありますが、読了するとかなりの達成感と実力の向上を感じることができます。

    ちなみに、本書は先頭から順に読み進める必要はなく、最初の第一章や二章が難しいと感じたなら、簡単なパターンの章から学習することが可能です。自分もTemplate MethodやStratgyなどから目を通すことで全パターンを網羅することができました。各パターンは、数ページから十数ページほどの適量に小分けされており、構成も一貫しているので、好きなパターンから負担なく読み進めることが可能です。

    なお、第二章のエディタの作成の例は8つのパターンをまとめた応用的な例なので、一番最後に読むのが良いでしょう。また、第一章の概要は、『オブジェクト指向』そのものを掘り下げた良質な解説であり、他の章に劣らず、重要な章となっています。

    本書の難点を言えば、やや古いことと、現在ではあまり主流でないSmallTalkについて所々で言及されていることでしょうか。また、UMLでなく、OMTというクラス図が使われているのも、最新版がでるならば修正して欲しい箇所です。これらの難点もありますが、それを遥かに上回るメリットが本書にはあるので、迷っている人は一度は手に取り、目を通すことをお勧めします。

    オブジェクト指向における再利用のためのデザインパターン

  • 【書評】C++の絵本 アンク(著)

    C++ の絵本 アンク(著)の書評です。

    良い点

    • 図やイラストが分かりやすい
    • 構成が見開き2ページ単位でスイスイ読める
    • C++の知識を俯瞰するのに丁度よい

    悪い点

    • 図やイラストが豊富な代わりに、文章の説明が足りない
    • C言語の基本文法の説明はない

    C++の絵本は、Cの絵本の続編となっています。そのため、C言語の基礎である変数・条件分岐・繰り返し・配列・ポインタといった基礎事項は解説されていません。

    その代わり、クラスとオブジェクト指向についての解説が厚くなっており、C++の特徴が多く解説されています。

    できれば、Cの絵本とセットで読むのがお勧めです。

    絵本シリーズの一冊ということで、図やイラストが豊富に用いられて分かりやすくなっています。しかし、その分、文章での説明が簡素になっており、ある程度の知識がないと、消化不良をおこすかもしれません。

    C++の基礎は一通り解説されているので、ざっとC++の特徴を俯瞰するのに向いていると思います。

    分量的には、約170ページあります。内容が平易なので、前提知識があれば、3~4時間くらいで読み終わります。

    C言語初心者が、入門書を2、3冊読むとするなら、ピックアップしたい一冊です。

    C++ の絵本

  • 【書評】新これならわかるC++-挫折しないプログラミング入門-

    新・これならわかるC++ 小林健一郎著

    3冊目となるC++本のレビューです。

    良い点

    1. クラスとオブジェクト指向プログラミングを中心に解説
    2. アドベンチャーゲームの作成など楽しめる
    3. 図の解説がわかりやすい

    悪い点

    C++の基本文法を知らないときつい

    総合評価

    一般的なC/C++の入門本とは一線を画すユニークな本です。

    この本では、文法もそこそこに、第2章でクラスの説明を始め、3章ではオブジェクトの利用、4、5章では、クラス・オブジェクトを利用したアドベンチャーゲームの作成と、オブジェクト指向を意識した入門書になっています。

    オブジェクト指向というと難しそうですが、この本では、かわいらしいモンスターを作り、継承などで、オブジェクト(モンスター)を増やしたりと、なかなか楽しめる構成になっています。

    ある程度の基礎知識をつけた後に、まとめ・発展としてこの本を手に取ると効果的な学習ができると思います。

    ゲームの他に、住所録やアンケートの作成もあります。そこでも、オブジェクト指向を意識した手法がとられています。

    基礎的な文法である、変数・制御・繰り返しなどに飽きてきたら、この本を読んでみると、違った視点でプログラミングを理解できると思います。

    新・これならわかるC++

  • 【書評】猫でもわかるC++プログラミング

    猫でもわかるC++プログラミング 粂井康孝(著)

    2冊目のC++本として、猫でもわかるシリーズの本を読んでみました。

    猫でもわかるというタイトルですが、正直、これが1冊目だと、読み進めるのに苦労すると思います。

    理由は、唐突な説明が数箇所あること。たとえば、for文の説明がされる前に、for文を構文で使用している点などが挙げられます。

    また、MFCとかバッファとかの用語が説明されないまま使用されていたりするので、考える時間が必要になり、若干、ストレスを感じることも。

    もっとも、2冊目、3冊目以降に、C++全体の確認として読むならいいかも。

    良い点としては、難しい箇所がわかりやすく解説されていることが挙げられます。

    たとえば、ビット演算やシフト演算、関数の再帰呼び出しなどは、比較的、難しい箇所ですが、この本では、わかりやすく説明されています。

    しかし、逆に、簡単な箇所が、どういうわけか、ひとひねりしてあり、かえって難しくなってしまっているという難点も。なかなか評価しづらい本です。

    猫でもわかるC++プログラミング