溫馨提示×

C++ lambda捕獲this指針的特殊性

c++
小樊
277
2024-07-05 19:03:29
欄目: 編程語言

在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表達式中訪問該類的成員變量和成員函數。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女