例如我有
class A {
public:
int x, y;
int(*func)();
};
我想让那个函数像
int main()
{
A a;
a.func = [this](){return x + y;};
}
或类似的东西。这意味着我可以在运行时创建方法“func”并决定它是什么。在 C++ 中可能吗?
这是可能的,但只能使用捕获,这意味着您需要使用 std::function<> 来代替。我认为它不会像你想要的那样有很好的“这种”行为
struct A {
int x, y;
std::function<int()> func;
};
然后像这样编码
int main() {
A self;
test.func = [&self](){ return self.x + self.y; };
}
我从不在 C++ 中说从不(即使使用 goto),但我不太确定这实际上是否是做事的好方法。是的,您可以这样做,但您确定没有更好的方法吗?深思熟虑。