为什么Lambda中的变量无法调用该函数

时间:2020-08-07 09:59:41

标签: c++ c++11 c++14

这是课程。

#include <iostream>
#include <string>

std::string strName = "ABC";

class BlueOut
{
public:
    void printName() { std::cout << strName << std::endl; }

};

现在我创建此类的对象

 BlueOut blueout;

然后我在lambda中调用对象的函数printName()

auto a = [&]() { blueout.printName(); };

但是该函数未执行。

1 个答案:

答案 0 :(得分:5)

在这一行,

auto a = [&]() { blueout.printName(); };

部分[&]() { blueout.printName(); }被称为lambda表达式。您将其绑定到某个变量a。现在,您有了由lambda表达式创建的函数对象a。为了看到效果,必须调用它:

a();