//成员函数必须为纯虚函数
class b
{
public:
virtual void test()=0;
};
//继承自IInterface,成员函数可为普通函数
class c: public IInterface
{
public:
void show(){ShowMessage("子类");};
};
//多重继承,必须先继承TInterfaceObject类
class a : public TInterfacedObject ,public b,public c
{
public :
void test()//覆盖父类
{
ShowMessage("ok");
}
virtual HRESULT STDMETHODCALLTYPE QueryInterface(
/* [in] */ REFIID riid,
/* [iid_is][out] */ void **ppvObject)
{ return TInterfacedObject::QueryInterface(riid, ppvObject); };
virtual ULONG STDMETHODCALLTYPE AddRef( void)
{ return TInterfacedObject::_AddRef(); };
virtual ULONG STDMETHODCALLTYPE Release( void)
{ return TInterfacedObject::_Release(); };
}
;
void __fastcall TForm1::Button1Click(TObject *Sender)
{
a * p = new a;
p->test();
p->show();
}
//---------------------------------------------------------------------------
VCL多重继承
最新推荐文章于 2019-05-24 14:12:31 发布