boost::bind应用示例
- // testBind.cpp : Defines the entry point for the console application.
- //
- #include "stdafx.h"
- #include <boost/bind.hpp>
- #include <boost/function.hpp>
- #include <assert.h>
- #include <iostream>
- /*
- Title:boost::bind应用示例
- 示例运行环境:
- [1]boost 1.39 SDK
- [2]VisualStudio2008 + SP1
- 示例内容:
- Precondition:MySubClass实例方法 参数方法列表 已知
- Do:控制权从MyParentClass实例方法,转移到,MySubClass实例方法。
- */
- //MyDataType:自定义数据类型
- struct MyDataType{
- MyDataType() {}
- MyDataType(int nV):m_nV(nV) {}
- int m_nV;
- };
- //MyParentClass:框架Class,负责消息派发
- class MyParentClass{
- public:
- boost::function<int(int,MyDataType)> m_fSub;
- int CallSubClassFunc(int nDT,MyDataType mdtDT)
- {
- int nR = m_fSub(nDT,mdtDT);
- return nR;
- }
- };
- //MySubClass:业务逻辑层,负责消息处理
- class MySubClass{
- public:
- int Run(int nDT,MyDataType mdtDT)
- {
- return nDT+mdtDT.m_nV;
- }
- };
- int _tmain(int argc, _TCHAR* argv[])
- {
- MyParentClass mpc;
- MySubClass msc;
- //两种实例方法间,建立联系
- mpc.m_fSub=boost::bind<int>(&MySubClass::Run,msc,_1,_2);
- //触发调用
- int nR=mpc.CallSubClassFunc(2,MyDataType(3));
- assert(nR==5);
- return 0;
- }
http://blog.csdn.net/lee353086/article/details/5269910
boost::bind应用示例的更多相关文章
- boost::bind和boost::function使用示例
		C++11已支持bind和function,之前的不支持,但可以借助boost达到同样目的.看如下两段代码: 1) 创建HDFS目录 void hdfs::init() { if (0 == hdfs ... 
- 使用BOOST BIND库提高C++程序性能
		Boost.Bind为函数和函数对象,值语义和指针提供语义了一致的语法.我们首先通过一些简单的例子来看看它的基本用法,之后我们会延伸到嵌套绑定以实现功能组合.理解bind用法的一个关键是理解占位符(p ... 
- Boost::Thread使用示例 - CG-Animation - 博客频道 - CSDN.NET
		Boost::Thread使用示例 - CG-Animation - 博客频道 - CSDN.NET Boost::Thread使用示例 分类: C/C++ 2011-07-06 14:48 5926 ... 
- boost asio 学习(二)了解boost::bind
		2.了解boost::bind使用boost::bind封装一个函数,考虑以下例子示例2a #include <iostream> #include <boost/bind.hpp& ... 
- 【转】bind简单示例
		bind简单示例代码 namespace { class placeholder_ {}; placeholder_ __1; } template <typename R, typename ... 
- boost::bind 详解
		使用 boost::bind是标准库函数std::bind1st和std::bind2nd的一种泛化形式.其可以支持函数对象.函数.函数指针.成员函数指针,并且绑定任意参数到某个指定值上或者将输入参数 ... 
- 1,Boost -> Bind
		#include <boost/bind.hpp> #include <boost/shared_ptr.hpp> #include <iostream> usin ... 
- boost::bind
		bind并不是一个单独的类或函数,而是非常庞大的家族,依据绑定的参数个数和要绑定的调用对象类型,总共有十个不同的形式,但它们的名字都叫bind. bind接受的第一个参数必须是一个可调用对象f,包括函 ... 
- boost::bind 和 boost::function 基本用法
		这是一篇介绍bind和function用法的文章,起因是近来读陈硕的文章,提到用bind和function替代继承,于是就熟悉了下bind和function的用法,都是一些网上都有的知识,记录一下,期 ... 
随机推荐
- 【例题3-5 UVA - 1583】Digit Generator
			[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] for (int i = 1;i <= n;i++) { 算出i是哪一个的生成元. 假设是y. 则ans[y] = min(a ... 
- Android系统开发(1)——GCC编译器的编译和安装过程
			GCC编译器介绍 GCC编译器(GNG C Compiler)是GNU项目中符合ANSI C标准的编译系统,能够编译C C++ Object C等语言编写的程序,同时GCC也是一个交叉编译器,特别 ... 
- 自行实现透明的控件如Panel GroupBox(使用不需要重绘父控件的效果,一切都因为窗口有了WS_EX_TRANSPARENT属性)
			CSDN的Blog开通了.我想这里的Blog作为今后自己回答别人问题的时候,收藏答案的地方很不错呢. 因为社区的贴子早晚都会沉下去,查找起来很不方便,甚至再也找不到呢. Q: http://commu ... 
- iOS中拉伸图片的几种方式
			假如下面的一张图片,是用来做按钮的背景图片的,原始尺寸是(128 * 112) 按钮背景图片.png 我们通过代码将这张图片设置为按钮的背景图片,假如我们将创建好的按钮的宽高设置为:(W=200, H ... 
- 序列 mysql
			CREATE TABLE emp_seq (seq INT); INSERT INTO emp_seq VALUES(0); UPDATE emp_seq SET seq = LAST_INSERT_ ... 
- js进阶正则表达式15验证身份证号(|符号的使用:var reg=/^\d{17}[\d|X]$|^\d{15}$/)(str的方法substr)
			js进阶正则表达式15验证身份证号(|符号的使用:var reg=/^\d{17}[\d|X]$|^\d{15}$/)(str的方法substr) 一.总结 1.|符号的使用:var reg=/^\d ... 
- Erlang基础知识集锦
			http://wenku.baidu.com/link?url=or-8mkUYUM0uVeqCYESGe93YIlh2IDLP7lFOwRlwr8Syf3PeHbwJC5DPCErs4NFrb1p4 ... 
- WPF Chart 图标
			DevExpress: <dxc:ChartControl.Diagram> <dxc:XYDiagram2D.SeriesTemplate> </dxc:XYDiagr ... 
- UE4.5.0的Kinect插件(Plugin)<一>
			声明:所有权利保留. 转载必须说明出处:http://blog.csdn.net/cartzhang/article/details/43193431 UE4 Plugin,在UE4的官网,放出了有个 ... 
- Oracle数据库零散知识07 -- Materialized view(转)
			物化视图是一种特殊的物理表,“物化”(Materialized)视图是相对普通视图而言的.普通视图是虚拟表,应用的局限性大,任何对视图的查询,Oracle都实际上转换为视图SQL语句的查询.这样对整体 ... 
