gpt4 book ai didi

c++ - C++结构中的回调

转载 作者:太空狗 更新时间:2023-10-29 21:33:06 26 4
gpt4 key购买 nike

我一直在尝试用 C++ 实现回调函数。在一个类中,我有一个结构、许多方法和一个创建结构实例的方法,该方法使用其他方法之一作为其参数。

该结构还有许多其他变量,但此处描述了一个示例:

class MYCLASS
{
public:
MYCLASS();

struct TEST{
std::function<int(int)> foo;
};

int plus(int x){
return x + 1;
}

int minus(int x){
return x - 1;
}

void sim(){
TEST T; // make an instance of TEST
T.foo = plus(5); // assign TEST.foo a function (plus or minus)
T.foo(); // call the method we assigned
}
};

sim 方法中,我想创建一个 test 的实例并给它 plusminus,取决于一些标准。我尝试为实例 T 提供 plus 函数并随后调用它的两行都是不正确的。

最佳答案

如果你想延迟对 T.foo 的调用,那么你可以使用这样的 lambda:

    T.foo = [this](int x) { return plus(x); };
T.foo(5);

关于c++ - C++结构中的回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52709638/

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