Effective C++ Item 312009年08月15日 10時14分32秒

  • コンパイル時のファイル間の依存関係を減らすには実装ではなく、宣言を行なう事によって出来る。基本的には、クラスのメンバを記述したもの、インターフェースを記述したものに分ける。
  • ライブラリのヘッダファイルはテンプレートを利用する時も含めて、宣言のみで作る。

参照やポインタで済むところにオブジェクトを使わない。参照やポインタの大きさはオブジェクトとは違い、既に確定している。

ポインタのみのデータメンバを持つクラスを扱うデザインは pimpl idiom ("pointer to implementation") やハンドルクラスと呼ばれる。

ハンドルクラスを用いずに宣言と実装を分離するにはインターフェースクラスを作る。C++ ではコンストラクタとメンバ変数が無く、仮想デストラクタと純粋仮想関数のみで構成される。

なおこれらの技法を使うと実行速度に多少の影響がある。開発時にはこれらの手法でインターフェースを固めて開発を進め、実行速度に問題がある時に、変更する方法を薦める。

前回次回