Absolute C++ (3rd Edition)

C、JAVAについてはプログラムを書くことができたものの、C++については、iostreamや簡単にクラスをつくる程度しか理解しておらず、C++特有の機能を使いこなすには至っていませんでした。一度ちゃんと勉強したいと思っていたのですが、米国にいた際にコミュニティカレッジの授業を通信でとる機会があり、そこでC++とC++によるアルゴリズムとデータ構造の授業と単位をとりました。
この本は、その時に指定された教科書です。すでにJAVAやQuick Basicなどのプログラミングの基本がある人を前提としている内容となっており、簡単にif, for文などの制御構造の話をした後は、オーバーロードや、配列、構造体、クラスの話に入っていきます。
コンストラクタが出てきた後は、C++の特徴であるオペレーターオーバーロードや、フレンド関数、ポインタ、動的配列割当、再帰プログラミング、継承、バーチャルファンクション、テンプレート、イテレーター、STLの使い方、Genericと入っていきます。だいたい一項目に一章当てられていて、典型的なコードと落とし穴になりそうな点について痒い所に手が届く解説がなされています。
日本の教科書だとひどく入門的か、高度な本が多く、実践的で中間レベル向けのテキストが少ないのですが、さすがIT大国だけあってよく考えられた教科書だと思いました。
私の場合は、この本で毎回授業毎に1、2章の読んできて、それでその分野の概念を使ったコードを書いてメールで提出するというのをやって単位を取りましたが、独学で勉強するよりも宿題という形で取り組んだので身に付いたと思います。特にSTLを使ったコードの書き方と、関数の値を渡すときのconstやpointerの使い方、オペレーターオーバーロード、フレンド関数の使い方など、Cとの違いにフォーカスして理解することができてよかったと思います。
目次をつけておきます。

今日、JAVAでオブジェクト指向のプログラムは書いてしまうのでしょうが、Cのスーパーセットでもあり、何でもできる言語あり、それ故に使い方の難しいC++について、良い作法を学ぶことができたと思います。

コメント

タイトルとURLをコピーしました