#include <iostream>
#include <functional>
//std::bind返回函数对象
void fun1(int a, int b)
{
std::cout << a << b << std::endl;
}
using namespace std::placeholders; class A
{
public:
void fun2(int a, int b)
{
std::cout << a << b << std::endl;
}
};
int main()
{
//第一种用法,直接绑定实参
std::bind(fun1, , )();//调用时把1,2的拷贝作为实参传递给fun1,bind中绑定的参数必须与fun1调用的参数个数相同,参数将会传递给fun1作为入参 //占位符_1的用法,在函数调用时才接受正真的参数
std::bind(fun1, _2, _1)(, );//占位符的名字表示在调用式中顺序,这个表示fun1(2, 1) //绑定成员函数
A a;
std::bind(&A::fun2, a, _1, _2)(, );//需要传递类似this指针的东西让这个函数对象调用&必须加 //functon用法,这个最多的用法可以存储bind返回的结果,在以后再需要的时候回调,是一种回调机制
std::function<void(int, int)> func;//function可以存储函数指针对象,之前以为只能存储std::bind
func = fun1;
func(, ); //function调用成员函数
//1.在function中写类名称
std::function<void(A&, int, int)> fun1;//可以赋值int,int返回为void的成员函数
fun1 = std::bind(&A::fun2, _1, _2, _3);
fun1(a, , );
//2.在bind里面写类实例,这种方式比较多
std::function<void(int, int)>fun2;
fun2 = std::bind(&A::fun2, a, _1, _2);
fun2(, ); getchar();
return ;
}

std::function,std::bind复习的更多相关文章

  1. c++11——std::function和bind绑定器

    c++11中增加了std::function和std::bind,可更加方便的使用标准库,同时也可方便的进行延时求值. 可调用对象 c++中的可调用对象存在以下几类: (1)函数指针 (2)具有ope ...

  2. C++11 学习笔记 std::function和bind绑定器

    C++11 学习笔记 std::function和bind绑定器 一.std::function C++中的可调用对象虽然具有比较统一操作形式(除了类成员指针之外,都是后面加括号进行调用),但定义方法 ...

  3. C++中的仿函数,std::function和bind()的用法

    1.仿函数:又叫std::function,是C++中的一个模板类 2.C语言中的函数指针: int  add(int a,int b) { return a+b; } typedef int (*f ...

  4. C++ 11 std::function std::bind使用

    cocos new 出新的项目之后,仔细阅读代码,才发现了一句3.0区别于2.0的代码: auto closeItem = MenuItemImage::create( "CloseNorm ...

  5. C++11学习笔记之三lamda表达式,std::function, std::bind

    //lamda //first lamda [] {}; // second lamda []() //or no need () when paramater is null { std::cout ...

  6. 【浅析C++11】std::function和std::bind

    目录 std::function可调用对象包装器 std::function基本用法 std::function/std::bind与抽象工厂.工厂方法的一点思考 std::function可调用对象 ...

  7. C/C++ C++ 11 std::function和std::bind用法

    std::bind() std::bind 主要用于绑定生成目标函数,一般用于生成的回调函数,cocos的回退函数都是通过std::bind和std::function实现的.两个点要明白: 1.绑定 ...

  8. 2.cocos2dx 3.2在语法的差异,lambada使用表达式和function和bind使用功能

    1        打开 - 内置T32  Cocos2dx-3.2一个专案 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhb ...

  9. 2.cocos2dx 3.2中语法的不同之处,lambada表达式的使用和function和bind函数的使用

    1        打开建好的T32  Cocos2dx-3.2的一个项目 2        设置Cocos显示窗口的位置是在AppDelegate.cpp中: 3  设置自适应窗口大小的代码是在上面的 ...

随机推荐

  1. excute和query

    query(update goods set is_delete=1 where goods_id=13)总是出错??为什么, excute(update goods set is_delete=1 ...

  2. Linux安全运维日志排查几个 tips

    运维日志排查记录 前言 记录一些排查常见日志的命令,方法wiki,欢迎补充(Markdown 语法). 常用命令 查找关键词并统计行数 cat 2015_7_25_test_access.log | ...

  3. sql server备份还原数据时的问题记录

    1.关于“因为数据库正在使用,所以无法获得对数据库的独占访问权”的最终解决方案 关键SQL语句: ALTER DATABASE [datebase] SET OFFLINE WITH ROLLBACK ...

  4. ASP.NET MVC4学习笔记之Controller的激活

    一. 高层相关类说明 当路由系统根据请求Url收集路由信息后,下一步就要将路由信息传给Controller激活系统,Controller激活系统负责实现了IController接口的Controlle ...

  5. C# 平时碰见的问题【3】

    今天发现一个问题纳闷了半个小时, 需求是处理project文件里边的数据内容,其中需要判断任务名称不存在重复; 在测试的时候弄了两行一样的任务,如预想: 任务[xxx]重复 然后删掉重复的任务行,继续 ...

  6. ios 异步处理耗时操作

    dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_asy ...

  7. TeXworks代码补全功能

    使用Tab键会自动补全(实在是太TM的方便了) 比如:

  8. [原创]PostgreSQL Plus Advanced Server监控工具PEM(三)

    三.使用PEM Client 在PEM Client中连接PEM Server 点击上图所示的按钮或点击菜单-> 第一次连接PEM Server,会有一次导入证书的操作,点击Yes按钮. 接下来 ...

  9. 先登陆面试再者Tabs标签导航,多次网络请求共享cookie,本地存储cookie

    1,index.ng.html: <head> <title>ionic todo example</title> </head> <body n ...

  10. mac 系统开发android,真机调试解决方案

    1.确保你的android设备真正链接到电脑上了,我在这里遇到过坑,弄了好久,才发现能充电的线,确无法传递数据过去.所以不要以为随便拿一根线,能充电,就可以传递数据了,我就是这么傻傻的拿了根不能用的数 ...