C++ Pimplイディオム

公開:2006-01-15 08:13
更新:2020-02-15 04:36
カテゴリ:c++

Pimplイディオム

【目的】

・ソースファイルの依存関係を減らす。
・プライベートメンバの隠蔽。

【具体的な実装方法】

不完全クラスとして実装の詳細クラスをヘッダーで定義する。
・不完全クラスのポインタをメンバとして定義する。
コピーコンストラクト可能( CopyConstructible ) かつ代入可能( Assignable )にしたい場合は、boost::shared_ptrを使用する。
・実装の詳細および、実装の詳細クラスの定義はcppファイルに記述する。

Boost.SharedPointerを使用して実装する方法。
http://boost.cppll.jp/HEAD/libs/smart_ptr/sp_techniques.html#pimpl

※不完全クラス(前方参照クラス)
class Hoge;
struct Hoge;