Effective C++ 原著第3版 ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES

スコット・メイヤーズ著、小林 健一郎 訳、ピアソン・エデュケーション 2006 

Effective C++ 原著第3版 (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)

Effective C++ 原著第3版 (ADDISON-WESLEY PROFESSIONAL COMPUTING SERIES)

目次
イントロダクション
第1章 C++に慣れよう
1項 C++を複数の言語の連合と見なそう
2項 #defi neより、const、enum、inlineを使おう
3項 可能ならいつでもconstを使おう
4項 オブジェクトは、使う前に初期化しよう
第2章 コンストラクタ、デストラクタ、コピー代入演算子
5項 C++が自動で書き、自動で呼び出す関数を知ろう
6項 コンパイラが自動生成することを望まない関数は、使用を禁止しよう
7項 ポリモーフィズムのための基底クラスには仮想デストラクタを宣言しよう
8項 デストラクタから例外を投げないようにしよう
9項 コンストラクタやデストラクタ内では決して仮想関数を呼び出さないようにしよう
10項 代入演算子は*thisへの参照を戻すようにしよう
11項 operator=の実装では、自己代入に備えよう
12項 コピーするときは、オブジェクトの全体をコピーしよう
第3章 リソース管理
13項 リソース管理にオブジェクトを使おう
14項 リソース管理クラスのコピーの振る舞いはよく考えて決めよう
15項 リソース管理クラスには、リソースそのものへのアクセス方法を付けよう
16項 対応するnewとdeleteは同じ形のものを使おう
17項 newで生成したオブジェクトをスマートポインタに渡すのは、独立したステートメ ントで行うようにしよう
第4章 デザインと宣言
18項 インタフェースは、正しく使うときには使いやすく、間違った使い方では使いにくいものにしよう
19項 クラスのデザインを型のデザインとして考えよう
20項 値渡しよりconst参照渡しを使おう
21項 オブジェクトを戻すべき時に参照を戻そうとしないこと
22項 データメンバはprivate宣言しよう
23項 メンバ関数より、メンバでもfriendでもない関数を使おう
24項 すべての引数に型変換が必要なら、メンバでない関数を宣言しよう
25項 例外を投げないswapを考えよう
第5章 実 装
26項 変数の定義は可能な限り先延ばししよう
27項 キャストは最小限にしよう
28項 オブジェクト内部のデータへの「ハンドル」を戻さないようにしよう
29項 コードを例外安全なものにしよう
30項 インラインをよく理解しよう
31項 ファイル間のコンパイル依存性をなるべく小さくしよう
第6章 継承とオブジェクト指向設計
32項 public継承はis-a関係を表すようにしよう
33項 継承した名前を隠蔽しないようにしよう
34項 インタフェースの継承と実装の継承の区別をしよう
35項 仮想関数の代わりになるものを考えよう
36項 非仮想関数を派生クラスで再定義しないこと
37項 継承された関数のデフォルト引数値を再定義しない
38項 コンポジションを使ってhas-a関係、is-implementedin-terms-of関係を作ろう
39項 private継承は賢く使おう
40項 多重継承は賢く使おう
第7章 テンプレートとジェネリックプログラミング
41項 暗黙のインタフェースとコンパイルポリモーフィズムを理解しよう
42項 typenameの2 つの意味を理解しよう
43項 テンプレート化された基底クラス内の名前へのアクセス方法を知っておこう
44項 パラメータに依存しないコードはテンプレートから外に出そう
45項 「すべての互換型」を受け取るためにメンバ関数テンプレートを使おう
46項 型変換をさせたいなら、メンバでない関数をクラステンプレートの中で定義しよう
47項 型の情報に関してはtraitsクラスを使おう
48項 テンプレートメタプログラミングを意識しよう
第8章 newとdeleteのカスタマイズ
49項 new-handlerを理解しよう
50項 どういうときにnewとdeleteの定義を自分で書くとよいか理解しよう
51項 newとdeleteの定義を自分で書く場合はコンベンションに従おう
52項 プレースメントnewの定義を書いたらプレースメントdeleteの定義も書こう
第9章 いろいろな事
53項 コンパイラの警告に注意を払おう
54項 TR1 を含む標準ライブラリになじもう
55項 Boostに親しもう
付録A Effective C++を超えて
付録B 第2版と第3版の対応表