C++接口的定义用一个实例说明
来源:互联网 发布:java 日志级别 编辑:程序博客网 时间:2024/04/25 06:46
接口是一个没有被实现的特殊的类(纯虚类),它是一系列操作的集合。
C++中没有提供类似Java中Interface这样的关键字来定义接口;
但是Mircrosoft C++中提供了__declspec(novtable)来修饰一个类,来表示该类没有虚函数表,也就是虚函数都是纯虚的。
所以利用它我们依然可以定义一 个接口。如下:
#include "stdafx.h"#include <iostream>using namespace std;#define Interface class __declspec(novtable)Interface Behavior{public: virtual void Fly(); virtual void Quack();};class BaseDuck: public Behavior{public: virtual void Fly() {cout << "BaseDuck Fly..." << endl;}; virtual void Quack(){cout << "BaseDuck Quack..." << endl;}; void Swim() {cout << "Duck Swim...\n" << endl;}};class RedHeadDuck: public BaseDuck{public: virtual void Fly() {cout << "RedHeadDuck Fly..." << endl;}; virtual void Quack(){cout << "RedHeadDuck Quack..." << endl;};};int main(){ BaseDuck* pDuck = new BaseDuck(); pDuck->Fly(); pDuck->Quack(); pDuck->Swim(); delete pDuck; RedHeadDuck* pRHDuck = new RedHeadDuck(); pRHDuck->Fly(); pRHDuck->Quack(); pRHDuck->Swim(); delete pRHDuck; return 0;}
上面的Behavior接口等价于下面的定义:
class Behavior{public: virtual void Fly() = 0; virtual void Quack() = 0;};
0 0
- C++接口的定义用一个实例说明
- C++接口的定义用一个实例说明
- C++接口的定义用一个实例说明
- C++接口的定义用一个实例说明
- C++接口的定义用一个实例说明
- 实例说明接口的作用
- 接口的一个实例
- QuickCSharp框架开发(13)------定义一个IAuthenticationProvider接口、将实现了接口的实例化对象转换成接口
- Java实例 定义任务的一个发射小程序 实现Runnable接口并编写run()方法
- 一个AgileFlow的流程定义实例
- 一个AgileFlow的流程定义实例
- 一个AgileFlow的流程定义实例
- 关于Java接口interface定义的几点说明
- ibatis的sqlSessionTemplate实例的sqlSession接口定义。
- JAVA中接口的一个实例
- 回调函数教程(一):回调函数定义及用接口实现的实例
- Java泛型--泛型实例--标识接口的定义
- java中接口的作用(实例说明)
- activity 启动另外一个activity作为子view
- Mat类详解(一)
- 【LeetCode】LeetCode——第9题:Palindrome Number
- win7关闭交互式服务检测
- 如何做竞品评测
- C++接口的定义用一个实例说明
- IDA动态调试so库
- VCRuntime140.dll 丢失
- 执行delete、update语句时,出现Error Code: 1175.解决方法
- 找第k大的数
- 移动端适配方案
- JavaScript 设计模式 笔记
- Mybatis学习记录(五)--整合spring开发Dao
- 页面向下滑动实现div显示和隐藏