51代码网ORACLEMYSQLSQL SERVER其它数据库java/jspasp/asp.netC/C++/VC++APP应用其它语言服务器应用
您现在的位置: 51代码网 >> C >> 文章正文

C++如何声明一个Interface

更新时间:2013-6-23:  来源:51代码网

C++如何声明一个Interface

我用其他语言(Delphi)写了一个DLL并导出了一个Interface的实现


Delphi/Pascal code?ITest = interface    procedure SetInt(Value: Integer);     function GetInt(Value: Integer): Integer;   end;


我想在C++中声明这样的接口应该如何写?网上查了下好像不支持interface关键字

C++没有接口
用纯虚基类 用VC肯定没问题,因为采用这种虚拟表结构可以很容易地实现和调用COM对象,比较一下C和C++实现和调用COM对象的代码就会知道,如果C++虚函数的实现变化之后,实现和调用COM会是多么头痛的一件事情。Delphi的接口类型来自于COM,是为了让Delphi能很方便地使用和编写COM对象,而MS肯定不会让他的VC不能方便地实现COM,所以VC的虚函数实现方式一定不会发生变化。

同时要注间,Delphi中的interfece天生就是从IUnknown派生——无论你在声明时有没有注明,所以在C++中写抽象类时不要忘了把IUnknown的三个函数加进去——或者也让C++类从IUnknown派生。

  • 上一篇文章:
  • 下一篇文章: 没有了
  • 赞助商链接
    推荐文章
  • 此栏目下没有推荐文章
  • {
    设为首页 | 加入收藏 | 友情链接 | 网站地图 | 联系站长 |