c++抽象类实现OC中的协议
来源:互联网 发布:淘宝网下雪纺女短袖 编辑:程序博客网 时间:2024/05/16 17:58
OC中协议的实现:
A中要调用B中的方法,通过delegate(代理)调用协议的方法来实现。
下面看C++中怎么实现:
一、先定义一个协议类 该类是一个抽象类
#ifndef __AppDelegateCplus__AppProtocol__
#define __AppDelegateCplus__AppProtocol__
//c++实现 oc的代理协议
#include <stdio.h>
#include <iostream>
class AppProtocol {
public:
virtualvoid ApplicationDidFinsh() =0;//存虚函数
};
#endif
二、再定义一个代理类 要实现这个协议就必须继承这个抽象类
#ifndef __AppDelegateCplus__AppDelegate__
#define __AppDelegateCplus__AppDelegate__
#include <stdio.h>
#include "AppProtocol.h"
//代理类继承协议类为了实现
class AppDelegate:publicAppProtocol {
public:
void ApplicationDidFinsh();//声明协议的方法
};
#endif
#include "AppDelegate.h"
//实现协议的方法
voidAppDelegate:: ApplicationDidFinsh()
{
printf("开始运行!!\n");
}
三、定义Application类也就是应用类
#ifndef __AppDelegateCplus__Application__
#define __AppDelegateCplus__Application__
#include <stdio.h>
#include "AppDelegate.h"
class Application
{
private:
AppDelegate *delegate; //私有属性delegate
public:
void setDelegate(AppDelegate *delegate);//设置器
void run();
};
#endif
.cpp文件:
#include "Application.h"
voidApplication:: setDelegate(AppDelegate *delegate)
{
this->delegate = delegate; //给delegate赋值
}
voidApplication:: run()
{
this->delegate->ApplicationDidFinsh(); //这里就实现了delegate调用协议方法的功能
}
四、最后看main函数
#import <Foundation/Foundation.h>
#import "AppDelegate.h"
#import "Application.h"
int main(int argc,constchar * argv[]) {
Application *app =newApplication();
AppDelegate *delegate =newAppDelegate();
app->setDelegate(delegate);
app->run();
delete app;
delete delegate;
return0;
}
最后打印出开始运行!!
- c++抽象类实现OC中的协议
- OC中的以协议实现的委托
- OC实战: 抽象类的实现
- OC学习:OC中的协议
- OC中的类别、类扩展与协议
- OC中的类扩展和协议
- OC中的协议
- OC中的协议protocol
- OC中的协议
- OC中的协议
- OC协议可选实现
- OC中的类目与协议
- OC中的分类和协议
- 关于OC 语言中的协议
- OC中的协议(@protocol)
- OC协议案例:监听器实现
- OC中的类及实现方法
- oc中的类的声明和实现
- 开源项目-最火的Android开源项目(完结篇)
- 队列模拟栈和栈模拟队列
- Cocos2d-x Lua/Javascript脚本代码加密实现例子【转】
- OSG 砖块 shader 例子 GLSL
- javascript高级程序设计之-------js数据类型
- c++抽象类实现OC中的协议
- 华硕X55笔记本更换SSD硬盘
- SQL技术第十章使用行函数
- android:taskAffinity使用记录
- WPF Binding相关的一些常见方式总结(八)
- CREATE PROCEDURE
- 反编译styleable的问题
- CentOS6.6下搭建SVN
- Paint的Xfermode的使用和经验总结