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

5章の残り。

32項

変数定義の「場所」についてはC++で書くようになってから「直前」に移動しているが、コンストラクタ、デストラクタのコストについての意識が薄かった。
要点は2つ。

  • 変数の定義は、その変数を使う直前になるまで遅らせるだけでなく、初期化引数を準備するまで遅延させたほうがいい。そうすることによって、不要なオブジェクトの構築と破壊を防ぐだけでなく、デフォルトコンストラクタによる不適切な構築も防止できる。
  • 変数を意味のある文脈の中で初期化すれば、その変数の役割がはっきりわかるから、変数の説明にもなる。

C言語では、変数の定義毎その変数の用途に即した変数名を用い、文脈で意味のわかる初期化変数を使えば、何行もかけるコメントが必要なところを1個の引数で的確に表現するという、すべてのプログラマにとっての夢が実現するのだ

こうなると良いなと思います。

33項

ここはさらりと。
むやみやたらとクラス定義の中で関数を書くのは避けよう。

34項

方針。

  • オブジェクトのリファレンスやポインタで間に合うときは、オブジェクトを使わない
  • クラス宣言を使えるときは、クラス定義を使わない
  • ヘッダファイルは、コンパイルに必要なものを除いて、他のヘッダファイルを #include してはならない。

肝に銘じよう。