• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > c++回调之利用函数指针示例

c++回调之利用函数指针示例

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c++ 回调函数,c++中的this指针,c++指针,c++指针详解,c++智能指针等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

c++回调之利用函数指针示例


/************************************************************************/
/*                下层实现: CALLBACK                                        */
/************************************************************************/

typedef void (*CALLBACKFUN)(int a,int b);

class base
{
private:
    int m;
    int n;
    static CALLBACKFUN pfunc;
public:
    base():m(0), n(0){};
    void registercallback(CALLBACKFUN fun,int k,int j);
    void callcallback();
};

CALLBACKFUN base::pfunc=NULL;    /* static初始化 */

// 注册回调函数
void base::registercallback(CALLBACKFUN fun,int k,int j)
{
    pfunc=fun;
    m=k;
    n=j;
}

void base::callcallback()
{
    base::pfunc(m,n);
}
</div>

下层定义回调函数的时候,需要提供以下几个接口:

1. 实现注册接口:提供一个接口给上层,通过该接口,上层注册回调实现接口,下层将该实现接口地址传递给定义的回调指针(CALLBACKFUN),该初始化动作是必须的,否则无法实现回调;

2. 触发接口:该接口提供触发行为,当调用该接口时,就会触发一次函数回调;

#include "stdafx.h"
#include "cbByfunction.h"

/************************************************************************/
/*                    上层回调注册                                        */
/************************************************************************/
void seiya(int a,int b)
{
    cout << "..." << a << "..." << b << endl;
    cout << "this is seiya callback function" <<endl;
}

void zilong(int a,int b)
{
    cout<<a<<endl<<b<<endl;
    cout<<"this is zilong callback function"<<endl;
}

int main(int argc, char* argv[])
{
    // 注册下层回调函数
    base c_base;
    c_base.registercallback(seiya, 5, 6);
    c_base.callcallback();
    c_base.registercallback(zilong, 7, 8);
    c_base.callcallback();
    return 0;
}
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 关于C++中定义比较函数的三种方法小结
  • c++回调之利用函数指针示例
  • 浅析C和C++函数的相互引用
  • C与C++ 无参函数的区别解析
  • 在c和c++中实现函数回调
  • 探讨:C++中函数返回引用的注意事项

相关文章

  • 2017-05-28C语言实现的统计素数并求和代码分享
  • 2017-05-28c++ dynamic_cast与static_cast使用方法示例
  • 2017-05-28浅析C++标准库元组(tuple)源码
  • 2017-05-28C语言中 值传递和指针传递实例详解
  • 2017-05-28Cocos2d-x保存用户游戏数据之XML文件是否存在问题判断方法
  • 2017-05-28c语言10个经典小程序
  • 2017-05-28STL常用容器详细解析
  • 2017-05-28C语言指针入门学习面面观
  • 2017-05-28复数乘法中的结构体赋值实现代码
  • 2017-05-28c语言实现一个简单日历

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C++入门概览和尝试创建第一个C++程序
    • MFC实现在文件尾追加数据的方法
    • 如何使用VC库函数中的快速排序函数
    • 解析Linux下的时间函数:设置以及获取时间的方法
    • linux c语言操作数据库(连接sqlite数据库)
    • 图文详解c/c++中的多级指针与多维数组
    • C++标准之(ravalue reference) 右值引用介绍
    • C语言 while语句的用法详解
    • Linux vmstat命令实战详细解析
    • 如何解决C语言,函数名与宏冲突

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有