- COMインターフェース
- 一定の条件を満たしたメモリブロック
- 関数へのポインタの配列(≒仮想関数テーブル)
- C++では純粋抽象基底クラスとして作成されることが多い
- 一つのコンポーネントで複数のインターフェースをサポート可能(多重継承)
- 条件を満たしたメモリブロックであれば純粋抽象基本クラスでなくても作成可能
- 一度公開したら変更してはいけない、新しいインターフェースを追加して対応する
- 多重継承の場合非仮想継承の必要がある。
- インターフェースの利点
- 変更からシステムを保護
- 同じインターフェースを実装していれば、異なるコンポーネントを同じように扱うことが出来る
- コンポーネントクラス
- インターフェースを実装したコンポーネントクラス(coclass)へのポインタは直接扱わない
- coclassへのポインタを使うにはcoclassの宣言(≒ヘッダーファイル≒実装の詳細)が必要になる
- coclassを直接扱わずにインターフェースを通して扱う事で宣言が必要なくなりコンポーネントを更新しても、修正が必要なくなる
- C++の1つのクラスであるとは限らない
- インターフェースをC++の継承機能で継承しているとは限らない(多分先頭のメモリ構造が同じであればおk)
カテゴリー
-
最近の投稿
アーカイブ
- 2022年2月
- 2021年7月
- 2020年7月
- 2020年6月
- 2019年12月
- 2018年12月
- 2018年5月
- 2017年12月
- 2017年11月
- 2017年10月
- 2017年9月
- 2016年11月
- 2016年10月
- 2016年2月
- 2015年10月
- 2015年9月
- 2015年4月
- 2015年3月
- 2014年12月
- 2014年11月
- 2014年8月
- 2014年6月
- 2014年1月
- 2013年11月
- 2013年10月
- 2013年8月
- 2013年6月
- 2013年4月
- 2013年2月
- 2013年1月
- 2012年12月
- 2012年11月
- 2012年10月
- 2012年9月
- 2012年8月
- 2012年7月
- 2012年6月
- 2012年5月
- 2012年4月
- 2012年3月
- 2012年2月
- 2012年1月
- 2011年12月
- 2011年10月
- 2011年9月
- 2011年7月