C++中lambda表达式如何捕获成员变量

   2024-10-07 6260
核心提示:在C++中,lambda表达式可以通过捕获列表来捕获外部变量。如果要捕获成员变量,可以使用this指针来捕获当前对象的所有成员变量。

在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。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式网站留言    |  赣ICP备2021007278号