Effective C++ 第3版

Effective C++ 第3版

プログラムとデザインを改良するための55項目
原書名 Effective C++
著者名 小林 健一郎
発行元 丸善出版
発行年月日 2006年04月
判型 B5変
ページ数 344ページ
ISBN 978-4-621-06609-6
Cコード 3004
ジャンル 電気・電子・情報工学 >  情報・コンピュータ >  言語・プログラミング

内容紹介

本書は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版の対応表

定価:本体3,800円+税
在庫:在庫あり