您的位置:首页 > 编程语言 > C语言/C++

一个最简单的com组件的例子(C++)

2005-10-26 16:05 483 查看
一个最简单的com组件的例子:)
定义了两个纯抽象基类Ix,Iy来做为组件的接口,然后定义组件CA来继承这两个接口,做为CA的多接口实现,然后在一个客户端显示了对此组件多接口的调用。
#include<iostream.h>
#include<objbase.h>
void trace1(const char* pMsg){cout<<pMsg<<endl;}
//first interface;
interface Ix
{
virtual void _stdcall Fx1()=0;
virtual void _stdcall Fx2()=0;
};
//second interface
interface Iy
{
virtual void _stdcall Fy1()=0;
virtual void _stdcall Fy2()=0;
};
//component
class CA: public Ix,public Iy
{
public:
virtual void _stdcall Fx1()
{
cout<<"Fx1"<<endl;
}
virtual void _stdcall Fx2()
{
cout<<"Fx2"<<endl;
}
virtual void _stdcall Fy1()
{
cout<<"Fy1"<<endl;
}
virtual void _stdcall Fy2()
{
cout<<"Fy2"<<endl;
}
};

//client main program
void main()
{
trace1("client:");
//创建组件的实例
CA *pa=new CA;
pa->Fx1();
trace1("Client: use Ix interface");
//创建接口的指针
Ix *pIx=pa;
pIx->Fx1();
pIx->Fx2();
trace1("Client: use Iy interface");
Iy *pIy=pa;
pIy->Fy1();
pIy->Fy2();
trace1("client: delete the component");
delete pa;
}
在目前C++中,com组件有三个关键之处:
(1)COM接口是由C++中的纯抽象基类来实现的。
(2)COM组件可以提供多个接口。
(3)一个C++类可以利用多继承来实现一个可以提供多个接口的组件。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: