2006年6月18日

プログラミング言語C++第3版

一年ほど前から読み始めて、気が向いたときに10~30ページずつ読むという亀の歩みで進めてきた『プログラミング言語C++第3版』をようやく読み終えました。

 

以下のような理由から、この本の位置づけはなかなか微妙です。

  • 記述が全般的に高度・専門的であり、プログラミング経験があまりない人の門書としては絶対に向かない
  • STL を含む標準ライブラリの解説は構成にまとまりがなく、リファレンスとして使いにくい
  • 言語仕様を厳密に知りたいのなら本書ではなく規格書を参照した方がいい

というわけで、1年かけて読んでおいて言うのもなんですが、それほどお勧めではありません。ところどころに間違いや誤植などがあるのも難点です。

ではななぜ読み続けてきたのかというと、 なんだかんだいっても、C++ の作者による著作であり、C++ の思想が随所から伝わってくるためです。C++ を始めた当初は、なんだかよくわからん言語だ、という印象がありましたが、設計がなぜそうなっているのかを理解するにつれ、徐々に納得していきました。

もう 1つの理由は、読んでいると毎回必ずのように、こんなこともできたのか、という新しい発見があったためです。そうやって仕入れたトリビアを「int main() try {} catch(...) {} って書ける?」「const int &a = 1 は OK なのに int &b = 1 はなぜダメなの? なんで禁止されたの?」などと知人の C++ プログラマにクイズとして出すのはちょっとしたいやがらせです。

最後の理由は、長いものを読み通すのが趣味というどいうでもいいものです。実際のところ、全部読み通す必要があるとは思いません。

というわけで、 C++ のコンセプト・設計・思想をよく理解したいという人向けの本だと思います。C++ のプログラムを実際に書く上では 「Effective C++」「Effective STL」「C++ Coding Standards」といった本の方が手っ取り早く役に立つと思います。

プログラミング言語C++第3版
Bjarne Stroustrup 長尾 高弘
アジソンウェスレイパブリッシャーズジャパン (1998/12)
売り上げランキング: 30,604