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

一个最简单的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++类可以利用多继承来实现一个可以提供多个接口的组件。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值