这是班级。
#include <iostream>
#include <string>
std::string strName = "ABC";
class BlueOut
{
public:
void printName() { std::cout << strName << std::endl; }
};
Run Code Online (Sandbox Code Playgroud)
现在我创建了这个类的一个对象
BlueOut blueout;
Run Code Online (Sandbox Code Playgroud)
我在 lambda 中调用对象的函数 printName()
auto a = [&]() { blueout.printName(); };
Run Code Online (Sandbox Code Playgroud)
但是该函数没有被执行。
在这一行中,
auto a = [&]() { blueout.printName(); };
Run Code Online (Sandbox Code Playgroud)
该部分[&]() { blueout.printName(); }称为 lambda 表达式。您将其绑定到某个变量a。现在您有一个a由 lambda 表达式创建的函数对象。为了看到效果,必须调用它:
a();
Run Code Online (Sandbox Code Playgroud)