Programming -- Principles and Practice Using C++

C++のお勉強に、Stroustrupの「Programming -- Principles and Practice Using C++」略してPPPを読み始めた。言語の学習は原典というか、作者の本をまず読むことにしているんだけど、「The C++ Programming Language」の方ではなく、こっちを選んだ。ちなみにTC++PL3の翻訳は持っているけど、全然読めてない。。

実行環境はMac OS X 10.10なのでclang。公式ページからstd_lib_facilities.hをダウンロードしておく。

以下、メモ。
2章から7章までプログラムを動かしながら読む。プログラミングの初心者向けの内容なので、特にC++どっぷりという内容ではない。Hello Worldから始まり、数式をパースして四則演算を行うプログラムを作ってみる。この内容で250ページも書くんだからなぁ。。

  • 3.9.2 unsafe conversions
    • narrowingの説明
    • C++11にはbrace-initializationってのがあって、narrowingをerrorにできる。
  • 4.3.1 constant expressions
    • const以外にconstexprってのがある。コンパイル時に定数とわかるものについてはconstexprと書ける。
  • 4.6 vector
  • 5.6 exceptions
    • 例外のさわりを紹介
  • 6. Writing a program
    • user-defined typeの実現としてclassを導入。structは出てこない。
    • expression()で再帰を導入。
  • 7. (6の拡張)
  • 8.
    • scopeとかpass-by-value、pass-by-(const-)reference。当然pointerはまだ出てこない。
    • 関数呼び出し時のスタックの挙動
    • だんだんstd_lib_facilities.hで隠蔽されていたことが明らかになってくる。

Programming: Principles and Practice Using C++ (English Edition)

Programming: Principles and Practice Using C++ (English Edition)