gpt4 book ai didi

C++11 在公共(public)函数中设置 lambda

转载 作者:太空宇宙 更新时间:2023-11-04 14:44:06 26 4
gpt4 key购买 nike

如何正确解决这个问题?

 class House{
public:
void startAction();
void init(){
startAction = [] () {};
}
};

这个我试过了,但是说“Expression is not assignable”

我想定义startAction的功能,但是在init方法里面。

我这样做是因为我想捕获 init 方法中的几个变量以传递给 startAction。

最佳答案

您不能为成员函数赋值。

你可以有一个成员函数调用的成员变量,像这样:

class House{
public:
void startAction() { m_action(); }
void init(){
m_action = [] () {};
}
private:
std::function<void()> m_action;
};

但是将要捕获的东西存储为 House 的成员会更简单。

关于C++11 在公共(public)函数中设置 lambda,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24549918/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com