C++相談室 part31
■ このスレッドは過去ログ倉庫に格納されています
0507デフォルトの名無しさん
NGNGごく簡単な例だと、例えば簡単な html パーサを書いていて、タグの情報をクラス化するとしたとき、
インタフェイス IHtmlTag を
class IHtmlTag {
public:
virtual const string& get_Name() const = 0;
virtual const HtmlAttr& get_Attributes() const = 0;
};
と定義し、実装は
class CHtmlImpl : public IHtmlTag
{
string m_strTag;
HtmlAttr m_attributes;
virtual const string& get_Name() const { return m_strTag;};
virtual const HtmlAttr& get_Attributes() const { return m_attributes;};
};
なんてしておく。
多重継承やcontainment で複数のインタフェイスを持つクラスなんかも作れる。
利点はイロイロあるけど、産業的にはクローズドソースでクラスライブラリを公開できる点が重要。
■ このスレッドは過去ログ倉庫に格納されています