为啥lambda中的变量无法调用函数[关闭]

Posted

技术标签:

【中文标题】为啥lambda中的变量无法调用函数[关闭]【英文标题】:Why the variable in lambda is not able to call the function [closed]为什么lambda中的变量无法调用函数[关闭] 【发布时间】:2020-08-07 09:59:41 【问题描述】:

这是课程。

#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(); ;

但是函数没有被执行。

【问题讨论】:

你是否像a();一样调用lambda? 由于没有 MCVE 而投票关闭,但可能您只是没有调用 lambda。 【参考方案1】:

在这一行,

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

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

a();

【讨论】:

以上是关于为啥lambda中的变量无法调用函数[关闭]的主要内容,如果未能解决你的问题,请参考以下文章