C++ lambda捕获this指针的特殊性

   2024-10-07 7600
核心提示:在C++中,lambda表达式默认是无法捕获this指针的。如果需要在lambda表达式中使用this指针,需要显式地将this指针传递给lambda表

在C++中,lambda表达式默认是无法捕获this指针的。如果需要在lambda表达式中使用this指针,需要显式地将this指针传递给lambda表达式,可以通过在lambda表达式的参数列表中使用this指针进行捕获。

例如,在一个类的成员函数中定义一个lambda表达式,并捕获this指针:

class MyClass {public:    void foo() {        auto lambda = [this]() {            // 在lambda表达式中使用this指针            this->bar();        };                lambda();    }        void bar() {        std::cout << "Hello from bar" << std::endl;    }};

在上面的例子中,lambda表达式捕获了this指针,并在lambda表达式中调用了该类的成员函数bar()。这样就可以在lambda表达式中访问该类的成员变量和成员函数。

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

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