C++11特性(02)匿名函数

C++11特性:匿名函数

匿名函数

每当我们使用C++创建一个函数的时候,都必须定义然后再使用。然后在有些情况下,我们不一定需要创建函数,然后再将函数的地址传入变量中。在C++11之前,C#语言支持匿名函数,也就是不需要定义函数的名称只需定义函数体及参数或者外部变量是否能够在匿名函数中使用、及外部变量在函数体中的使用方式。

匿名函数的定义方式如下:
        //[]中填写外部变量怎么在匿名函数内使用:&(引用模式) =(赋值模式)
	//()中填写函数的参数
	//{}中编写匿名函数的函数体
	[](){
		std::cout << "The function is the Niming function!" << std::endl;
	};
定义好匿名函数后我们怎么调用它?
这里因为我们不知到函数的函数名称,因此可以使用指针的方式或者auto关键字方式,如:
函数指针方式:
	//定义一个函数指针
	void(*p)();
	//[]中填写外部变量怎么在匿名函数内使用:&(传值) =(赋值)
	//()中填写函数的参数
	//{}中编写匿名函数的函数体
	p = [](){
		std::cout << "The function is the Niming function!" << std::endl;
	};
	//通过指针来调用函数
	p();
auto关键字方式:
	//[]中填写外部变量怎么在匿名函数内使用:&(传值) =(赋值)
	//()中填写函数的参数
	//{}中编写匿名函数的函数体
	auto p = [](){
		std::cout << "The function is the Niming function!" << std::endl;
	};
	//通过指针来调用函数
	p();

[]外部变量的使用模式

通常如果不在[]中指定相应的模式,那么系统认为你在匿名函数中不使用外部变量,当制定的以下的模式后,匿名函数才能使用外部变量。
[]:不使用外部变量
[&]:外部变量的引用传进来使用
[=]:与普通的外部变量在函数体内使用一样,通过将外部变量拷贝一份临时变量在匿名函数内部使用
[index]:只在函数中使用外部变量index
[this]:能够在函数中使用当前类的对象


  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值