Advertisement

256-C++ lambda

阅读量:

1.下面程序能否编译通过?

全局变量g_max并不涉及捕获的概念。就全局变量和全局对象而言,捕获这一机制并不存在。针对x1的情况,其并未捕获任何变量,因此无法使用a,出现错误。而x2的情况则不同,它采用按值捕获的方式,会生成一个副本,能够捕获a、b以及this指针。需要说明的是,this指针本质上是一个常性指针Object * const this。无论采取按值还是引用的方式进行捕获,this指针的常性属性不会改变,因此无法将this设置为nullptr。

在这里插入图片描述
  1. 当仅捕获当前类中的this指针时,lambda表达式将获得与当前类成员函数相同的访问权限,即能够访问成员变量,但无法访问a和b这两个变量。[this]的含义是仅捕获this指针,而不包含其他任何变量。
在这里插入图片描述

![在这里插入图片描述](https://ad.itadn.com/c/weblog/bl

全部评论 (0)

还没有任何评论哟~