以下に紹介した「C++再考」は、現ピアソン・エデュケーションが社名変更する前に発行されたものですが、この度、ピアソン・エデュケーションから新装版として再発行されることになりました。
内容的に変更はありません。
<iostream>ではなく<iostream.h>など、古いライブラリを使った記述になっているのでご注意ください。もちろん、その内容は、決して「古く」はありません。個人的にはとても好きな本の1つです。
http://www.pearsoned.co.jp/washo/index.html
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
C++の中級(以上)本を翻訳しました。訳した私が言うとなんですが、初級を終えて中級以上に進みたい人には、本当に良い本だと思っています。
それで、まあ、ちょっと、書かせて下さい。^^)
「C++再考」 A. Koenig、B. E. Moo著 小林健一郎訳
アジソン・ウェスレイ・パブリッシャーズ・ジャパン/星雲社 3800円+税
予備知識:
私のHPだけでは、残念ながら少し足りません。すくなくとも、他に、「参照」や「テンプレート」などの知識と「プログラミング上のちょっとつらい経験」が必要です。「参照」と「テンプレート」については後でHPを補足します。「つらい経験」はあんまり欲しくないですが、人間、多少痛い目を見ないとなかなかステップアップできないものです。、、、よね。
対象読者:
1.とにかく中級以上を目指す人
2.「ハンドル」、「コンテナ」、「反復子」、「STL」、「関数オブジェクト」などの意味を知りたい人
3.C++で自信をもってプログラミングしたい人
3.について、一言。C++は「いろいろできる言語」である反面、初心者にはどうすれば「良い」のかがわかりにくいものです。表面的に「定石」を覚えても、意味がわからないと自信を持って実行できないでしょう。この本はそんな人にもお勧めということです。
守備範囲外:
ウインドウズなどGUIプログラミングを直接扱うものではありません。(もちろん、GUIプログラミングにも応用できる基本テクニックを扱います。)
かなり高級なことを実に具体的かつ明快に説明してあります。(アメリカ人はこんな本を読んで勉強するのか、これじゃかなわんな、、、。というのが、原書をはじめてみたときの私の正直な感想です。)とはいえ、考えることなくすらすら読める本ではありません。
興味のある方は、一度見てください。
表紙は牛さんが寝そべっていて、(たぶん)女性が本を読んでいる、、、というものですが、大きな書店にしか置いてない(;;)ようなので目次も書いておきませう。
プレリュード/なぜ私はC++を使うのか/私はなぜC++を使うか/現実の世界を生きる/代理クラス/ハンドル:パート1/ハンドル:パート2/オブジェクト思考プログラム/クラスルームの練習問題:パート1/クラスルームの練習問題:パート2/仮想関数を使うべきでないとき/コンテナクラスのデザイン/コンテナの要素にアクセスする/反復子/シークエンス/インターフェースとしてのテンプレート/テンプレートとジェネリックアルゴリズム/ジェネリックな反復子/ジェネリックな反復子を使う/反復子アダプタ/関数オブジェクト/関数アダプタ/普段使うライブラリ/ライブラリ・インターフェース・デザインのオブジェクト型レッスン/ライブラリのデザインは言語のデザイン/言語のデザインはライブラリのデザイン/跡を残すクラス/オブジェクトのまとめ置き/アプリケータ、マニピュレータ、関数オブジェクト/アプリケーション・ライブラリを入出力ライブラリから切り離す/複雑から簡単へ/Hello Worldと言った後に何をするか
このHPでは、7月くらいから、私の「C++入門」とこの本の橋渡しにあたる話(初心者向きの訳注集?)をしようかと思っています。
Errata
読者の方からミスプリを指摘していただきました。ありがとうございます。
ご迷惑をおかけしたみなさまにお詫びいたします。
p87のBinaryクラスのコード
誤:class Biary_node
正:class Binary_node
誤:Unary_node(const String& a,
正:Binary_node(const String& a,
(Binary_nodeのコンストラクタですね。)