C++相談室 part15
■ このスレッドは過去ログ倉庫に格納されています
0201デフォルトの名無しさん
NGNGふつーはメンバのオブジェクトを個々に scoped_ptr で持たずに pimpl イディオム
使うけどな。Effective C++ じゃなくて Exceptional C++ ね。
> それもそうですけど、これでもインターフェースクラスに変更があったら再コンパイルですよね。。。
それは仕方ない。
ただ、影響を最小限に留める方法としては、
1. 純粋仮想関数だけからなるインターフェースクラスを分離
2. 実装側は、そのインターフェースを継承して vtbl を埋める
3. クライアントはインターフェースだけを見る
って手がある。
インターフェースを拡張する場合、既存のインターフェースには手を加えず、別のイン
ターフェースを定義して、それを実装側に継承させる。(インターフェースの多重継承
というヤツやね。COM でも良く使われてる)
■ このスレッドは過去ログ倉庫に格納されています