使用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 的声明中有许多有关实现的细节。对这些实现细节的修改将使得客户必须被重新编译。但前面已经讲过,增加或减少组件的接口不应打断已有的客户。这就是我们为什么一再坚持客户和组件之间只应通过接口进行通信。记住,接口是由没有实现细节的虚纯基类实现的。

C++中的接口设计

在用C++写要导出类的库时,我们经常只想暴露接口,而隐藏类的实现细节。也就是说我们提供的头文件里只提供要暴露的公共成员函数的声明,类的其他所有信息都不会在这个头文件里面显示出来。这个时候就要用到接口与...
  • wind19
  • wind19
  • 2012年07月23日 19:56
  • 1857

Caffe相关C++接口实例

Caffe相关接口实例: c++的接口:https://github.com/BVLC/caffe/blob/master/examples/cpp_classification/classific...
  • zhazhiqiang2010
  • zhazhiqiang2010
  • 2015年07月24日 10:57
  • 2243

C++简易接口示例

第一次做接口,虽然理论知识都懂,还是花了几天才弄出来。把实际工程精简一下记录下来。 这里共有两个工程,一个是生成含有接口的动态链接库工程,一个是使用接口的工程。 动态链接库工程: 接口类(API...
  • chasingMax
  • chasingMax
  • 2017年07月10日 19:11
  • 323

C++调用DLL接口

基础概念: SDK API DLL SDK sdk 软件开发工具包,软件开发工具包广义上指辅助开发某一类软件的相关文档、范例和工具的集合。一般而言SDK即开发Windows平台下的应用程序所使用的...
  • Codepe
  • Codepe
  • 2015年07月19日 16:40
  • 339

【Caffe的C++接口使用说明二)】caffe_windows下的C++接口的使用

转载自:http://blog.csdn.net/happynear/article/details/45372231 注意:        1)已经按照这个配置成功,并且成功测试了windows下c...
  • maweifei
  • maweifei
  • 2017年05月30日 19:54
  • 883

C/C++接口设计->总结

尽量不要设计用引用的接口, 显式的指针好的多;接口重要的是语义明确 基本类型就没必要引用了。C的风格是用指针,C++风格是引用。 C++ 只有在重载操作符的时候才用引用,其它时候都不建议使用...
  • liutianshx2012
  • liutianshx2012
  • 2015年03月31日 23:33
  • 663

【Caffe的C++接口使用说明四)】Caffe中分类C++接口Demo源代码的解析

#ifndef CAFFE_CAFFE_HPP_ #define CAFFE_CAFFE_HPP_ #include "caffe/blob.hpp" ...
  • maweifei
  • maweifei
  • 2017年05月30日 22:28
  • 954

Windows下面用vs2013直接调用caffe的c++接口

1 概述   由于需求最经需要做火焰检测,一开始是想着用传统的机器学习算法去做,后来发现目前的火焰检测都是基于颜色来做的,在实际场景中经常会因为路灯和太阳等外部的影响导致很严重的误报,后来定了用深度...
  • xjz18298268521
  • xjz18298268521
  • 2017年03月13日 16:52
  • 3876

UE4 -- C++ 创建UInterface接口

今天看到到UE4的接口,创建蓝图接口很容易,只要能明白几个英文单词就好了; 但是,如果要直接使用传统C++的方式声明一个接口会很坑,首先怎样直接用C++声明和定义一个接口在https://wiki....
  • a615538001
  • a615538001
  • 2016年06月10日 00:49
  • 1025

深入学习python (七) 如何用python调用C/C++接口

如何用python调用C++。半成品,求debug。
  • u013802726
  • u013802726
  • 2014年05月26日 20:43
  • 2043
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用C++的接口
举报原因:
原因补充:

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