インターフェイスについて読むたびに、データ メンバーや実装がまったくないことが言及されています。
しかし、インターフェイスを持つコードを見ると、両方があります。
class IInterface
{
public:
IInterface(){}
virtual ~IInterface(){}
int getInt(){ return m_int; }
virtual void Boo() = 0;
int m_int;
};
class cInterface : public IInterface
{
public:
virtual void Boo()
{
printf( "defined in .cpp for readability\n" );
};
};
class cFoo : public cInterface
{
};
(ほとんど) ソース ファイルでそれらを見ることはなく、ヘッダーだけです。
この用語はどのくらい厳密に使用されていますか? また、上記がインターフェースでない場合、どのように呼ばれますか?
IInterface* として使用する場合、cInterface/cFoo の使用法を反映していますか?
...
cFoo foo;
IInterface* object = &foo;
object->Boo();
...