BohYoh.comトップページへ

C++のエッセンス

本書の概略 前書き 目 次 電子書籍版について 発行日・履歴 著書のページ


教えたいときは手短に。
― キケロ

 C++は新しい言語になった感じがする。C++11では、C++98と比べて、よりクリアで、より簡潔で、より直接的に、自分のアイディアが表現できる。

 コンパイラは、より優れたチェックを行うし、プログラムは高速に動作するようになった。

他の最近の言語と同様に、C++は大規模であるとともに、効果的利用ができるように数多くのライブラリを提供する。コンパクトな本書は、熟練したプログラマ向けに、C++を新しくしているアイディアを示す。もちろん、主要な言語機能と標準ライブラリコンポーネントの大部分を網羅している。本書は、2、3時間程度で読めるだろう。もっとも、C++の優れたコードを書く手法のすべてを一日で学習できるわけではない。本書の目的は、専門的知識の修得ではなく、概要や重要な例題を示すとともに、みなさんがスタートできるようにすることだ。専門的知識が必要であれば、拙著『プログラミング言語C++ 第4版(TC++PL4)』〔Stroustrup, 2013〕を参考にしてほしい。ちなみに、本書は、TC++PL4中の『C++を探検しよう』というタイトルの2章から5章までの内容を膨らませたものだ。とはいえ、1冊の完結した本となるように、内容を増やすとともにリファインしている。この探検は、TC++PL4をなぞっていく構成となっている。そのため、どこを追加したのかは、すぐに分かるだろう。なお、私のウェブサイト(www.stroustrup.com)で提供しているTC++PL4の演習問題も、この探検の手助けとなるはずだ。

 なお、ここではプログラミング経験のある読者を想定している。もし経験がなければ、本書を読み進める前に、まずはProgramming : Principles and Practice Using C++〔Stroustrup, 2008〕などのテキストを読むといいだろう。たとえプログラミング経験があっても、その言語や使用したアプリケーションがC++のプログラミングスタイルとかけ離れていれば、やはり同様である。

 コペンハーゲンやニューヨークなどの都市を短時間で周遊する観光ツアーを考えてみよう。ほんの2、3時間で、主だった名所を訪れて若干の歴史を簡単に教わったら、次のお勧めスポットへと案内される。そんなツアーでは、その都市を知ったことにはならないし、見たもの聞いたものすべてを学んだことにもならない。その都市のことを本当に知るならば、そこに数年間は住まなければならないだろう。しかし、順調に進めば、都市の概観や宣伝文句、興味を引きそうなものをあげられるくらいにはなるだろう。そして、ツアー終了後に、本当の発見の旅が始まるのだ。

 この探検では、たとえばオブジェクト指向プログラミングやジェネリックプログラミングなどの、各種のプログラミングスタイルをサポートするための主要なC++の言語機能を学んでいく。細かいことや、リファレンスマニュアルや、言語の一つ一つの機能を学習することが目的ではない。同様に、ライブラリも、すみずみまでを学習するのではなく、例題としての使い方を学習する。ISO標準で定義されている詳細までを解説することはない。そのため、読者のみなさんは、他の資料も必要になるはずだ。たとえば、〔Strousrtrup, 2008〕と〔Strousrtrup, 2013〕が参考になるだろう。もっとも、ウェブ上には、(質はさまざまであるものの)厖大な量の資料がある。たとえば、本書で標準ライブラリ関数について解説しているときは、その定義はすぐに見つけられるはずだ。また、そのヘッダのドキュメントを例にとるときは、関連する機能がすぐに見つかるだろう。

 この探検では、C++の表層だけではなく、全体像を丸ごと示す。そのため、Cと、C++98の一部と、C++11の新機能などをきちんとは区別していない。そのあたりの歴史的経緯と互換性についは、第14章にまとめている。

謝辞

 本書で示すものの多くはTC++PL4〔Strousrtrup, 2013〕からもってきたものなので、謝意を表すべき方々については、そちらに示している。さらに、TCP++PL4の探検の章を膨らませて1冊のまとまった本とすることを提案してくださったAddison-Wesleyの担当編集者であるPeter Gordon氏に謝意を示したい。

College Station, Texas
Bjarne Stroustrup



オンラインで購入できます!  □amazonで購入(紙書籍版:2色刷)

本書の概略 前書き 目 次 電子書籍版について 発行日・履歴 著書のページ