C++は,広く使われているプログラミング言語ですが,マスターするまでの道のりは平坦なものではありません。C言語を基に仕様を拡張してオブジェクト指向を取り込んだ経緯もあって,プログラミングの自由度が高く,良いプログラミングと悪いプログラミングの差が激しく出てしまう言語です。C++の言語仕様は理解したが,どうもうまくプログラミングができない気がする,という方は多いのではないでしょうか。

 逆に,どうすればC++でよいプログラミングができるかさえ理解してしまえば,Windowsをはじめとする多くのプラットフォームで,高速なプログラムを自在に作るスキルを手に入れられます。C++とWindowsプログラミングを極めるための5冊をご紹介しましょう。

Effective C++
改訂2版

Scott Meyers 著
吉川 邦夫 訳
アスキー 発行
1998年5月 271ページ
3800円(本体)
bk1で購入する
注解C++リファレンス・マニュアル
M.A. エリス,B.ストラウストラップ 著
足立 高徳,小山 裕司 訳
シイエム・シイ 発行
2001年2月 596ページ
4600円(本体)
bk1で購入する
プログラミング言語C++第3版
Bjarne Stroustrup 著
ロングテール/長尾 高弘 訳
アジソン・ウェスレイ・パブリッシャーズ・ジャパン 発行
1998年11月 1031ページ
7000円(本体)
bk1で購入する

流行から原典まで,
C++スキルを鍛える3冊

 最初に紹介する1冊は,C++を一通りを学んだが,どうもうまくC++でプログラミングができないという人には最適な「Effective C++ 改訂2版」です。「newとdeleteのペアは,同じ形式に揃えよう」とか,「デストラクタでポインタ・メンバーにdeleteを使うのを忘れないようにしよう」というようなC++でうまくコーディングするためのコツとテクニックを50項目紹介しています。50の項目を順番に読んでいくことで,より高度なテクニックへステップアップできるように配慮されています。

 文章は話し言葉の調子に近く,簡潔でわかりやすいサンプル・プログラムと併せて,C++で正しくコーディングする方法を学んでいけます。場所によっては,書いたプログラム・コードをコンパイラがどのように解釈するかまでつっこんで解説しており,本書が示すコツやテクニックが,なぜそうあるべきなのかまで,きちんと納得できます。

 本書と同様の構成で続編の「More Effective C++」もお薦めです。もしC++マスターを目指すなら,その道のりは,ぜひEffective C++から始めてみてください。本書には,目からうろこが落ちる指摘がたくさん詰まっています。

 次に紹介するのは,「注解C++リファレンス・マニュアル」です。著者の1人はC++の設計と実装をしたBjarne Stroustrup(ビヨーン・ストラウストラップ)氏です。英語版のタイトル「The Annotated Reference Manual」の頭文字をとって,通称「ARM本」と呼ばれています。

 原著は1992年発行とやや古い本ですが,C++の基本的な言語仕様はこの10年で大きく変化していません。現在でも十分利用できる内容といえます。

 本書の価値は,C++のリファレンスの部分よりも,むしろ「注解」の部分にあります。少し小さい字で記された注解では,C++のそれぞれの機能を,なぜそのように定義したのか,どうすれば上手に利用できるのか,どのように動くか,がちゃんと記されています。たとえば,オブジェクトを作成するnew演算子の項の注解では,(1)作成しようとしているオブジェクトのための記憶領域を探し,(2)このオブジェクトを初期設定して,(3)このオブジェクトへの適切な型のポインタを探す──という感じです。

 C++を利用しながら,知りたい機能や仕様を本書で参照するたびに,より深い理解が得られるはずです。

 最後の1冊は「プログラミング言語C++ 第3版」です。これもBjarne Stroustrup氏の著作で,本書がC++の原典とされています。

 本書は,サンプル・プログラムと適切な図表を用いながら,C++の機能とプログラミング・テクニックを解説していきます。かなりボリュームがありますが,最初から順番に読み進めていけば,C++のプログラムの作り方,考え方を身につけることができるでしょう。最新の第3版は1997年に刊行されました。STL(標準テンプレート・ライブラリ)のように,比較的最近C++に追加された機能もちゃんとカバーしています。

 本書を読みこなすには,C++でプログラミングしたある程度の経験が必要です。簡単な本ではありません。著者は本書の読み方として,「よくわからなかったらパニックに陥らずに,わからないところは飛ばして読み,あとから戻ってまたとばしたところ読んでみる」ことを勧めています。

 そうして手に入れた知識は,きっと「C++を極める」ために役立つものとなるはずです。C++のプロフェッショナル・プログラマなら,手元に置いておきたい1冊と言えます。惜しいことに本書は,ちょっと誤訳が多いようです。英語に自信のある方は,原著の「The C++ Programming Language」にチャレンジしてみるのもよいでしょう。

プログラミングWindows 第5版(上)
Charles Petzold 著
ロングテール/長尾 高弘 訳
アスキー 発行
2000年10月 790ページ 4980円(本体)
bk1で購入する

Windowsプログラミングを
制覇するための1冊

 Windowsが何かとは,改めて紹介する必要はないでしょう。しかしそのプログラミング環境の仕組みは,なかなか複雑なものです。ここではWindowsを深く理解しながら,Windowsのプログラミングを制覇できるお薦め書籍を紹介します。

 「プログラミングWindows 第5版」です。著者の名前をとって通称「ペゾルト本」と呼ばれています。Win32プログラミングをマスターするためのバイブルとして,人気があります。

 本書は上巻と下巻に分かれています。カバーする範囲は広く,上巻では文字コード,描画,キーボードやマウスからの入力,タイマー,メニュー,ダイアログ,クリップボード──など,下巻ではテキストとフォント,MDI(Multiple Document Interface),マルチタスクとマルチスレッド,DLL(Dynamic Link Library)などを扱います。いずれもサンプル・プログラムを挙げながら,理解するために必要な周辺知識とともに解説しています。サンプルはC言語で記述してあります。ポインタと構造体の知識があれば,十分読み解けるレベルです。

 どうもWindowsプログラミングというのは,他のOSや環境と違ってよくわからない,というモヤモヤを抱えているなら,ぜひ上巻第3章の「Windowsとメッセージ」だけでものぞいてみてください。Windowsプログラミングの基本的な概念を,サンプル・プログラムを示しながら解説しています。登場するたとえは「私を呼ばないで,私があなたを呼びますから」です。私はWindowsで,あなたはプログラマであることが見えた瞬間に,きっと目の前の霧が晴れた気分になるでしょう。