Effective C++ Item 31 ― 2009年08月15日 10時14分32秒
- コンパイル時のファイル間の依存関係を減らすには実装ではなく、宣言を行なう事によって出来る。基本的には、クラスのメンバを記述したもの、インターフェースを記述したものに分ける。
- ライブラリのヘッダファイルはテンプレートを利用する時も含めて、宣言のみで作る。
参照やポインタで済むところにオブジェクトを使わない。参照やポインタの大きさはオブジェクトとは違い、既に確定している。
ポインタのみのデータメンバを持つクラスを扱うデザインは pimpl idiom ("pointer to implementation") やハンドルクラスと呼ばれる。
ハンドルクラスを用いずに宣言と実装を分離するにはインターフェースクラスを作る。C++ ではコンストラクタとメンバ変数が無く、仮想デストラクタと純粋仮想関数のみで構成される。
なおこれらの技法を使うと実行速度に多少の影響がある。開発時にはこれらの手法でインターフェースを固めて開発を進め、実行速度に問題がある時に、変更する方法を薦める。
最近のコメント