「C++再考」の訳注1
     全般について

こんにちは。最近「C++再考」という本を訳しました。訳者が言うと、信憑性が、なんですが、本当に良い本だと思っています。ただ、訳していて、補足したいなぁ、、、ということがいくつか有りました。原著者はとても偉い人で、その著作に文句があるわけでは無いのです。私のHPの読者が読むなら、こんなことを言った方が、、、といういろいろです。

この訳注集は、全般において原著者とは何の関係もありません。また、優等生的な「解説」ではなく「正直な」感想も書くかもしれません。特に「感想」のようなものは、私の良心に基づいて書きますが、間違うこともあるはずです。(大学の教員とはそういうものです。)読者は学生を含む「大人」と考えますので、最終的には、ご自分で判断し、ご自分の意見を持つようにしてください。


 さて、今回は、この本のスタイルに関する注意です。アメリカの教科書で、不思議なのは、書く順番です。日本で書かれる教科書は、最初から読んでいくと、新しい知識が少しずつ順序良く出てくるものですが、アメリカの名著と呼ばれる教科書の多くがそうなっていません。
 例えばC++のバイブル、ストラウストラップ大先生の「プログラミング言語C++」がそうです。この本を日本的な感覚で初心者が読むとすぐ沈没するでしょう。頭から読めない人は、とにかく読み進んで、わかるところからわかっていくのが正しい読み方だと思います。
 「C++再考」は教科書というより、雑誌のコラム集なので、事情は違いますし、「プログラミング言語C++」よりわかり易いのですが、やはり、日本人が「普通」と思う順番にならんでいないかもしれません。例えば、「C++を勉強するにはどうすれば良いか」などが最後の第32章にあったりします。

 要するに、私がまず言いたいことは、この本を順番に読む必要はないという事です。

 第0章では、Cを知らない人にC++を教える話がありますが、読者はある程度CとC++を知っていると仮定して書いてあります。(まあ、当然ですね。)私のHPのみを読んできた人(う〜ん、そんな人はいるのかな?)は、printfなんて関数を知らないかもしれません。この関数はCでは標準の関数で、C++ではあまり使わない人もいるようですが、将来を考えると是非知っておいて欲しいものです、、、が、この章での使い方は、初心者にはちょっとハイテクです。最初の例にしてはちょっときついかもしれません。

 (この本をざっと見たところ、いわゆる特にC固有の知識は必要ないはずです。敢えて言えば、第0章のprintfくらいです。まあ、特にC固有というほどでもないんですが。printfは何か参考書を見れば、基本は一発でわかると思いますが、ちょっとハイテクな使い方は、ぼちぼち覚えましょう。C++再考を読むのには問題ありません。)

 また、この章に出てくるTraceクラスの必要性が飲み込めないかもしれません。本の訳注にも書きましたが、これはデバッグ用のクラスです。VCやBCのような立派なデバッガ付きソフトを使う(使いこなせる)人にはあまり関係ないかもしれません。また、それに続く議論も、多少辛酸をなめたCプログラマにしかピンとこないと思います。まあ、「中級の基本」ではあるので理解できればそれにこしたことはないのですが、初心者がいきなりひっかからなくても良いように思います。

 初心者が第0章でいきなり躓いてしまうとしたら、大変申し訳ないので、こんなことをだらだら書いているのです。結論を言いましょう。初心者は第0章以下、飛ばし読みをし、理解できればもうけもの、できなければ後で考える、、、とすると良いと思うのです。第1章、第2章、第3章も同様です。(というかこの辺は「お話」ですね。)

 第4章は、微妙です。この章は説明ではなく「チェックリスト」です。従って、詳しい解説ではなく、ポイントの解説なのです。簡単に言うと、この本の読者としては、第4章を読んですんなりわかる人を想定しているのだと思います。わかる人は、そのまま進んでください。わからなかった人はこの本は置いて、より基礎的な本を買って読んでください、、、なんて言いませんよ。

 高校時代に読んで、いまだに忘れない一節があるのですが、それは「若者なら背伸びしなさい」というものでした。もう若くない私は、別に若くなくても成長はある、と信じています。それで、この一節は、「成長したい人は誰でも背伸びするべき」と言い換えましょう。というわけで、お互い、がんばりましょう。少なくともこの本を買ってしまった(ありがとうございます)のなら、元をとりましょう。

 次週以降、少し第4章の解説に入ります。


後のページ
「C++入門のHP」の目次
「C++再考・訳注集」の目次