C++を利用して方法学の上でインタフェースを実現します

1857 ワード


C++にはインタフェースを定義するインタフェースのようなキーワードは提供されていませんが、Mircrosoft c++には__が提供されています.declspec(novtable)は、クラスを修飾し、クラスに虚関数テーブルがない、すなわち虚関数が純粋な虚であることを示す.インタフェースを定義することができますコードの例は次のとおりです.
#include using namespace std; #define interface class __declspec(novtable)
interface ICodec { public:     virtual bool Decode(char * lpDataSrc,unsigned int nSrcLen,char * lpDataDst,unsigned int *pnDstLen);     virtual bool Encode(char * lpDataSrc,unsigned int nSrcLen,char * lpDataDst,unsigned int *pnDstLen); }; class CCodec:public ICodec{public:virtual bool Decode(char*lpDataSrc,unsigned int nSrcLen,char*lpDataDst,unsigned int*pnDstLen){cout<<復号...<Decode(NULL,0,NULL,NULL);      pCodec->Encode(NULL,0,NULL,NULL);      delete (CCodec*)pCodec;     return 0; }
   ICodec          :


   
   
   
   
class ICodec { public:      virtual bool Decode(char * lpDataSrc,unsigned int nSrcLen,char * lpDataDst,unsigned int *pnDstLen)=0;      virtual bool Encode(char * lpDataSrc,unsigned int nSrcLen,char * lpDataDst,unsigned int *pnDstLen)=0; };