C++纯虚函数实现接口
来源:互联网 发布:设计公司logo软件 编辑:程序博客网 时间:2024/06/16 10:59
C++纯虚函数
纯虚函数语法
virtual type functionname()=0;
virtual声明的方法后加上=0是纯虚函数
Java Interface接口
Java 中使用Interface开放接口,让另一个类implements interface来达到逻辑和接口分离的作用
Java Interface接口
C++实现接口
利用两个特性
1. 纯虚函数必须被派生类实现
2. C++向上造型
抽象类相当于Java的Interface
Java:public interface api { void onCall();}C++:class api {public: void onCall() = 0; }
派生类相当于Java的implements
Java:public class apiCtx extends api { void onCall() { xxx }}C++:class apiCtx : public api {public: void onCall() { xxx }}
通常在逻辑处理的class中会把接口实现类当作参数传入
Java: demo实现接口 ctx完成逻辑处理 调用时把demo传递给ctxclass demo implements ctx.api {public: void onCall() { xxx }}class ctx { private api api_; public interface api { void onCall(); } public void call(api api) { api_ = api; api_.onCall(); }}调用: ctx a; demo b; a.call(b);
C++: 抽象类api作为接口 派生类apiCtx和apiChild实现接口 Content完成逻辑 调用时传入派生类决定调用的接口#include <iostream>#include <vector>#include <map>#include <stdlib.h>#include "inc.h"using namespace std;class api {public: virtual void onCall() = 0;};class apiCtx : public api{public: void onCall() { printf("apiCtx.onCall\n"); }};class apiChild : public api {public: void onCall() { printf("apiChild.onCall\n"); }};class Content {public: void onExec(api *api) { api_ = api; api_->onCall(); }private: api *api_;};int main(void){ Content ctx; apiCtx a; apiChild b; ctx.onExec(&a); ctx.onExec(&b); getchar(); return 0;}
总结
OOP语言似乎都有些共通的地方 一些特性都能用不同的方式实现
接下来实践中多把握这一点
阅读全文
0 0
- C++纯虚函数实现接口
- 纯虚函数实现接口类:接口编程实战演练
- C方式实现C++纯虚函数
- C++纯虚函数接口
- 接口类 纯虚函数
- 纯虚函数(继承接口),虚函数(继承接口和默认实现),非虚函数(继承接口和强制实现)
- 【C/C++】纯虚函数
- 虚函数、虚基类、纯虚函数、接口
- [c++]为什么可以在基类中实现纯虚函数
- Learn Objective‐C,学习笔记04 协议(Java中的接口,c中的纯虚函数)
- [收集]c++抽象类、纯虚函数以及巧用纯虚析构函数实现接口类
- [收集]c++抽象类、纯虚函数以及巧用纯虚析构函数实现接口类
- [收集]c++抽象类、纯虚函数以及巧用纯虚析构函数实现接口类
- [收集]c++抽象类、纯虚函数以及巧用纯虚析构函数实现接口类
- c++抽象类、纯虚函数以及巧用纯虚析构函数实现接口类【转】
- 关于纯C中的函数实现
- 多继承与纯虚函数接口
- C++纯虚函数实现
- 设计模式-java实现动态代理
- 基本包装类型
- java Zip文件的压缩与解压, 兼容Windows和Linux
- Android/iOS/Unity与BLE蓝牙设备连接失败问题指南
- 在HTML中如何动态显示时间
- C++纯虚函数实现接口
- nginx安装记录
- swoole 异步redis客户端环境安装
- c#使用json
- AI-Tensorflow—Windows7安装TensorFlow方法
- java分割多个空格
- 代码规范
- 谷歌开源TFGAN:轻量级生成对抗网络工具库
- cent0S 7 安装 cdh5.13 笔记之一: 安装saltstack minion