【C++】マイナーGUIツールキットat TECH
【C++】マイナーGUIツールキット - 暇つぶし2ch23:デフォルトの名無しさん
03/10/15 05:50
>>22
 ATL/WTL の「インタフェイス登録式+デフォルト実装提供式」は「使う側」にとっては
結構便利ですよ。なぜテンプレートベースかというと、標準実装においてインタフェイスに
出さない内部的な処理( 以下の例だと IUIAdonerImplWindowless::CreateFont ) を仮想関数
無しで置き換えられるのと、標準実装においては定義していないメンバ変数、メンバ関数も
利用して実装が書けるから( 同 IUIAdonerImplWindoid::GetWindow )。
以下は単純化した例。

class IUIAdoner {
public:
 virtual font get_textFont(void) = 0;
};

template class<T>
class IUIAdonerImplWindowless {
protected:
font m_font;
 void CreateFont(font& f) { f = SysCreateFont(); };
public:
 IUIAdonerImpl() { T::CreateFont(m_font); }
 virtual font get_textFont(void) { return m_font; }
};

template class<T>
class IUIAdonerImplWindoid {
public:
 IUIAdonerImplWindoid() {}
 virtual font get_textFont(void) { return SysGetWindowFont(T::GetWindow()); }
};



次ページ
続きを表示
1を表示
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch