1. // testBind.cpp : Defines the entry point for the console application.
  2. //
  3. #include "stdafx.h"
  4. #include <boost/bind.hpp>
  5. #include <boost/function.hpp>
  6. #include <assert.h>
  7. #include <iostream>
  8. /*
  9. Title:boost::bind应用示例
  10. 示例运行环境:
  11. [1]boost 1.39 SDK
  12. [2]VisualStudio2008 + SP1
  13. 示例内容:
  14. Precondition:MySubClass实例方法 参数方法列表 已知
  15. Do:控制权从MyParentClass实例方法,转移到,MySubClass实例方法。
  16. */
  17. //MyDataType:自定义数据类型
  18. struct MyDataType{
  19. MyDataType() {}
  20. MyDataType(int nV):m_nV(nV) {}
  21. int m_nV;
  22. };
  23. //MyParentClass:框架Class,负责消息派发
  24. class MyParentClass{
  25. public:
  26. boost::function<int(int,MyDataType)> m_fSub;
  27. int CallSubClassFunc(int nDT,MyDataType mdtDT)
  28. {
  29. int nR = m_fSub(nDT,mdtDT);
  30. return nR;
  31. }
  32. };
  33. //MySubClass:业务逻辑层,负责消息处理
  34. class MySubClass{
  35. public:
  36. int Run(int nDT,MyDataType mdtDT)
  37. {
  38. return nDT+mdtDT.m_nV;
  39. }
  40. };
  41. int _tmain(int argc, _TCHAR* argv[])
  42. {
  43. MyParentClass mpc;
  44. MySubClass msc;
  45. //两种实例方法间,建立联系
  46. mpc.m_fSub=boost::bind<int>(&MySubClass::Run,msc,_1,_2);
  47. //触发调用
  48. int nR=mpc.CallSubClassFunc(2,MyDataType(3));
  49. assert(nR==5);
  50. return 0;
  51. }

http://blog.csdn.net/lee353086/article/details/5269910

boost::bind应用示例的更多相关文章

  1. boost::bind和boost::function使用示例

    C++11已支持bind和function,之前的不支持,但可以借助boost达到同样目的.看如下两段代码: 1) 创建HDFS目录 void hdfs::init() { if (0 == hdfs ...

  2. 使用BOOST BIND库提高C++程序性能

    Boost.Bind为函数和函数对象,值语义和指针提供语义了一致的语法.我们首先通过一些简单的例子来看看它的基本用法,之后我们会延伸到嵌套绑定以实现功能组合.理解bind用法的一个关键是理解占位符(p ...

  3. Boost::Thread使用示例 - CG-Animation - 博客频道 - CSDN.NET

    Boost::Thread使用示例 - CG-Animation - 博客频道 - CSDN.NET Boost::Thread使用示例 分类: C/C++ 2011-07-06 14:48 5926 ...

  4. boost asio 学习(二)了解boost::bind

    2.了解boost::bind使用boost::bind封装一个函数,考虑以下例子示例2a #include <iostream> #include <boost/bind.hpp& ...

  5. 【转】bind简单示例

    bind简单示例代码 namespace { class placeholder_ {}; placeholder_ __1; } template <typename R, typename ...

  6. boost::bind 详解

    使用 boost::bind是标准库函数std::bind1st和std::bind2nd的一种泛化形式.其可以支持函数对象.函数.函数指针.成员函数指针,并且绑定任意参数到某个指定值上或者将输入参数 ...

  7. 1,Boost -> Bind

    #include <boost/bind.hpp> #include <boost/shared_ptr.hpp> #include <iostream> usin ...

  8. boost::bind

    bind并不是一个单独的类或函数,而是非常庞大的家族,依据绑定的参数个数和要绑定的调用对象类型,总共有十个不同的形式,但它们的名字都叫bind. bind接受的第一个参数必须是一个可调用对象f,包括函 ...

  9. boost::bind 和 boost::function 基本用法

    这是一篇介绍bind和function用法的文章,起因是近来读陈硕的文章,提到用bind和function替代继承,于是就熟悉了下bind和function的用法,都是一些网上都有的知识,记录一下,期 ...

随机推荐

  1. 【19.77%】【codeforces 570D】Tree Requests

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  2. C语言实现字符串截取函数left、mid和right

    作者:iamlaosong C语言字符串截取须要自己编程实现,只是.网络时代,自然不用自己从头写了.网上各种方法的实现代码已经多如牛毛了,这儿抄录一个感觉不错的备案. #include <std ...

  3. 9个完整android开源app项目

    一.photoup 介绍: photoup 是一款开源的相册类app,主要功能是将本地图片提交到facebook上去,虽然他的功能和facebook的远程服务相关,但是本身是可以被当作一款 相册应用的 ...

  4. sequence配置

    在实现分库分表的情况下,数据库自增主键已经无法保证在集群中是全局唯一的主键了,因此mycat提供了全局的sequence,并且提供了本地配置.数据库配置等多种实现方式. 本地文件方式 采用该方式,my ...

  5. php实现数组中的逆序对(归并排序实现:排序 辅助数组)

    php实现数组中的逆序对(归并排序实现:排序 辅助数组) 一.总结 这题用归并排序  线段树   树状数组 等操作的复杂度应该都是小于n方的 二.php实现数组中的逆序对 题目描述 在数组中的两个数字 ...

  6. 微信开发学习日记(五):weiphp开源框架的bug,公众号权限编辑问题

    最近在研究weiphp,总体感觉还行,bug据说还挺多. 这不,我就遇到一个比较严重影响使用的.感觉不太应该出现这么严重的bug啊. weiphp的微信公众号等级,权限增加和编辑bug,看不到权限列表 ...

  7. 正則表達式基础及java使用

    正則表達式基础 正則表達式语法(1)     普通字符:字母,数字.汉子,下划线以及没有特殊定义的标点符号都是"普通字符".表达式中的普通字符.在匹配一个字符串的时候,匹配与之同样 ...

  8. 开源 RISC-V 架构正在改变 IoT 处理器的游戏规则

    by Paddy McWilliams, Director of Product Marketing, CEVA   在过去的十年里,开源软件已经成为了科技世界最大的催化剂.现在开源的力量带来了自由发 ...

  9. 【codeforces 777C】 Alyona and Spreadsheet

    [题目链接]:http://codeforces.com/contest/777/problem/C [题意] 给你n行m列的矩阵: 然后给你k个询问[l,r]; 问你在第l到第r行,是否存在一个列, ...

  10. vector, list, deque的选用(vector适用少量对象,list适用大量对象),以及效率问题

    如何选择这三个容器中哪一个,应根据你的需要而定,一般应遵循下面的原则:  1.如果你需要高效的随机存取,而不在乎插入和删除的效率,使用vector  2.如果你需要大量的插入和删除,而不关心随机存取( ...