在C++中,lambda表达式可以通过捕获列表来捕获外部变量。如果要捕获成员变量,可以使用this指针来捕获当前对象的所有成员变量。示例如下:
#include <iostream>class MyClass {public: MyClass(int value) : m_value(value) {} void testLambda() { int localVar = 5; auto lambda = [this, localVar]() { std::cout << "Member variable m_value: " << m_value << std::endl; std::cout << "Local variable localVar: " << localVar << std::endl; }; lambda(); }private: int m_value;};int main() { MyClass obj(10); obj.testLambda(); return 0;}在上面的示例中,lambda表达式捕获了MyClass对象的成员变量m_value和testLambda函数内部的局部变量localVar。在lambda表达式中,使用[this]来捕获当前对象的所有成员变量,使用[localVar]来捕获局部变量localVar。


