使用C++的接口

转载 2007年09月22日 15:50:00
#include "stdafx.h"

using namespace std;



//abstract interfaces

interface IX
...{
    
virtual void _stdcall Fx1()=0;
    
virtual void _stdcall Fx2()=0;
}
;


interface IY
...{
    
virtual void _stdcall Fy1()=0;
    
virtual void _stdcall Fy2()=0;
}
;

void trace(const char* pMsg)...{cout<<pMsg<<endl;};
//interface implementation
class CA:public IX,public IY
...{
public :
    
//implement interface IX
    virtual void _stdcall Fx1()...{cout<<"CA::Fx1"<<endl;}
    
virtual void _stdcall Fx2()...{cout<<"CA::Fx2"<<endl;}

    
//implement interface IY
    virtual void _stdcall Fy1()...{cout<<"CA::Fy1"<<endl;}
    
virtual void _stdcall Fy2()...{cout<<"CA::Fy2"<<endl;}
}
;


int main()
...{
    trace(
"client create an instance of the component");
    CA
* pa=new CA;
    
//get an ix pointer
    IX *pix=pa;
    trace(
"client:use the IX interface");
    pix
->Fx1();
    pix
->Fx2();

    
//get an iy pointer
    trace("client use the iy interface");
    IY 
*piy=pa;
    piy
->Fy1();
    piy
->Fy2();
    system(
"pause");

}


stdafx.h

#pragma once

#include <iostream>
#include <tchar.h>
#include <objbase.h> 

 

非接口通信
不知读者是否还记得前面我们提到过:客户和组件之间只是通过接口进行通信。但程序清单中的客户却没有遵循这一规则。在那里,客户与组件间的通信是通过一个指向类 CA 的指针而不是通过指向接口的指针完成的。使用指向 CA 的指针要求客户知道类以的定义(通常是一个头文件)。在类 cA 的声明中有许多有关实现的细节。对这些实现细节的修改将使得客户必须被重新编译。但前面已经讲过,增加或减少组件的接口不应打断已有的客户。这就是我们为什么一再坚持客户和组件之间只应通过接口进行通信。记住,接口是由没有实现细节的虚纯基类实现的。

mysql C++接口的封装以网络的使用

  • 2013年08月08日 09:43
  • 2.75MB
  • 下载

封装dpdk接口成静(动)态库(同源同宿、多通道队列收包),然后在C++应用中使用方法

dpdk的接口全部都是C语言实现的,它的makefile模版也很简单,只需改变其宏就可以在生成可执行文件、静态库、动态库之间切换。本篇博文主要给出如果使用dpdk封装成静态库后,在C++应用程序中编译...

C++使用gsoap调用webservice接口

  • 2015年10月22日 11:56
  • 20.65MB
  • 下载

Effective C++:条款18:让接口容易被正确使用,不易被误用

(一) 看下面这个例子: class Date { public: Date(int month, int day, int year); }; 很有可能引起下面这两个错误:...

C#使用OpenCV C++接口读取视频

  • 2013年12月01日 17:10
  • 197KB
  • 下载

vs环境下,用c++使用微软word提供的com接口

主要需要#import 三个文件VBE6EXT.OLB,MSO.DLL,MSWORD.OLB,这样就可以使用主要的函数。 _ApplicationPtr word.CreateInstance(__u...

使用Fitnesse对C++工程作自动化接口测试(3)

Cslim下载和安装
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用C++的接口
举报原因:
原因补充:

(最多只允许输入30个字)