Effective C++ 第3版
原書名 | Effective C++ |
---|---|
著者名 | 小林 健一郎 訳 |
発行元 | 丸善出版 |
発行年月日 | 2006年04月 |
判型 | B5変 |
ページ数 | 344ページ |
ISBN | 978-4-621-06609-6 |
Cコード | 3004 |
NDCコード | 007 |
ジャンル | 電気・電子・情報工学 > 情報・コンピュータ > 言語・プログラミング |
内容紹介
本書は1991年の初版以来、C++プログラマから絶大な支持を得てきた『Effective C++』の内容を新たにした改訂第3版の翻訳書。 C++プログラムを理解しやすく、保守しやすく、移植性をあたえ、拡張しやすくするために、55個のガイドライン(アドバイス)を設けた。すべての項で、よりよいデザインを考え、よくある問題を避け、自分の期待通りに動く、より効率的なプログラムを書くためのガイドラインが示されている。 さらに著者は、「2005年(原著第3版発行)の今、C++プログラマにとってもっとも重要なアドバイスは何だろうか」という問いをたて、その要求にも十分に答えた。リソース管理、テンプレートを使ったプログラミングに関する章を追加し、例外の存在、デザインパターンの適用、TR1という新しい項目に関する解説も加えた。すべてを初めから組み立てなおし、実際に半分以上が新しい内容になっている。
目次
第1章 C++に慣れよう
1項 C++を複数の言語の連合と見なそう
2項 ♯defineより、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-implemented-in-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項 TRIを含む標準ライブラリになじもう
55項 Boostに親しもう
付録A Effective C++を超えて
付録B 第2版と第3版の対応表
第2版と第3版の対応表
第3版と第2版の対応表
関連商品
▼ 関連記事
- 深くしっかり学ぶプログラミング&機械学習特集!2023.03.15
- 【書店・生協様向け】プログラミング&機械学習フェア2019.09.26
- 【2017年10月】新刊案内・一覧注文書2017.10.01
- 旧・ピアソン桐原より翻訳刊行されていた書籍を、丸善出版より一部再出版いたします2013.12.01