1章 C++に慣れよう - ポイント列挙

1項 C++は4つの基本的なサブセットでできている

  1. C
    1. ブロック
    2. ステートメント
    3. プリプロセッサ
    4. 組み込みのデータ型
    5. 配列
    6. ポインタなど
  2. オブジェクト指向C++(クラス付きのC)
    1. ctor, dtor を持つクラス
    2. カプセル化
    3. 継承
    4. ポリモーフィズム
    5. 仮想関数(動的結合)
  3. テンプレートC++
    1. C++ジェネリックプログラミング部分(型に依存しない)
  4. STL
    1. テンプレートライブラリの一種だが、テンプレートを扱うルールと別個にあつかう必要がある

2項 #defineより、const, enum, inline

  1. #defineでは、コンパイルエラーには展開後の値が表示されるのでわかりにくい
  2. 大文字はマクロで使われる。定数はキャピタライズする。
  3. (他はあとで読む)

3項 可能ならいつでも const を使う

  1. T* const(ポインタがconst) のように振る舞う反復子
    1. const std::vector::iterator iter=v.begin();
      1. *iter = 10; // OK
      2. ++iter; // エラー!
  2. const T*(データがconst) のように振る舞う反復子
    1. std::vector::const_iterator cIter = v.begin();
      1. *cIter = 10; // エラー!
      2. ++cIter; // OK
  3. 二項演算子の operator の宣言
    1. 戻り値を const として (a*b) = c などを許可しないようにする(比較演算子との誤用を防ぐ)
      1. const Rational operator*(const Rational& lhs, const Rational& rhs);

以降、編集中