EffectiveC++

EffectiveC++改訂2版 46項〜50項

最終章。 46項 結論として、エラーをランタイムに検出するのは、コンパイル時やリンク時に行うよりも、要するに信頼性が劣るということになる。 普段、周りで作っているプログラムは、ランタイムエラーの検出すらできていないケースが多いのが何とも。。 47…

EffectiveC++改訂2版 35項〜44項

6章。 オブジェクト指向は実使用したことがないだけに、概念的な理解しかできていないと思う。今度Meyerの本でじっくり勉強しよう。Smalltalk勉強会もあることだし。。 35項 public継承の肝 public継承は、「その一種である」という関係[英語で言うと"is-a…

EffectiveC++改訂2版 32項〜34項

5章の残り。 32項 変数定義の「場所」についてはC++で書くようになってから「直前」に移動しているが、コンストラクタ、デストラクタのコストについての意識が薄かった。 要点は2つ。 変数の定義は、その変数を使う直前になるまで遅らせるだけでなく、初期…

EffectiveC++改訂2版 29項〜31項

『第5章 クラスと関数:その実装』だけれども既知の事項で復習をしている感じ。自分自身に蓄積ができつつある感触は悪くないですね。 29項 内部データのハンドル(ポインタ、参照)を返すなということ。第3版では、この手のリソースは専用のハンドルクラス…

EffectiveC++改訂2版 22項〜28項

Smalltalk勉強会に向けての予習のため休んでいたEffectiveC++改訂2版の勉強の再開。 22項 リファレンス渡しは素晴らしいが、独特の複雑さを伴う。特に悪名高いのは17項で説明したエイリアシングの問題である。 これは身に付いている。 23項 アルバートアイン…

EffectiveC++改訂2版 第17項〜第21項

17項 AcceleratedC++でも何度も注意されていた「自己代入」のチェック。ほとんどの場合、this と &rhs の比較で判定すれば良い。 エイリアシングの可能性を考慮しなければいけない理由 効率:代入は非常にコストがかかる操作になる場合がある 安全:間違いを…

EffectiveC++改訂2版 14項〜第16項

第14項 継承で利用する基底クラスの仮想デストラクタの話。AcceleratedC++でもおなじみ。 第15項 代入演算子。これもAcceleratedC++でおなじみ。 よくある間違い operator= の戻り値を void にする operator= の戻り値を const オブジェクトのリファレンスに…

EffectiveC++改訂2版 第9項〜第13項

第9項 メンバ関数の定義による隠蔽の話。50項では継承関係の中での話しだが、ここでは operator new() の話。 第10項 63ページにあるBLOCK_SIZEの定義はなぜか1項では「古い」とされている形式。 かつ、ここの説明での operator delete() の形式も古い形式の…

EffectiveC++ 改訂2版を読み始める

本棚に埋もれていた第2版をこれまでの復習を兼ねて読み始める。 第3版に比べ、Cからの移行の章があったりして時代を感じさせますね。こちら側が丁度良い位なのが淋しいですが。 1項から7項 このあたりはすいすい読み進められる。 8項 非メンバ、メンバのnew/…