gpt4 book ai didi

c++ - 需要一些方法将函数存储在列表中,然后调用它们

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

这个列表必须包含函数,它们可能来自不同的命名空间,甚至是实例类的方法。
然后将迭代此列表并调用所有函数和方法。如果它们也可以包含参数,那就太好了。

我正在考虑使用 std::vector,但我怀疑我的猜测远非正确。

你推荐我什么方法?欢迎所有帮助。

最佳答案

如果您的编译器已经支持,您可以使用 std::function 和 std::bind。

#include <functional>
#include <vector>

void x(int) {}
void y() {}
class Z {
public:
void z() {}
};

int main(int argc, char *argv[])
{
typedef std::function<void ()> VoidFunc;
typedef std::vector<VoidFunc> FuncVector;
FuncVector functions;

functions.push_back(std::bind(&x, 1));
functions.push_back(&y);
Z z1;
functions.push_back(std::bind(&Z::z, z1));

for(FuncVector::iterator i = functions.begin(); i != functions.end(); i++) {
(*i)();
}

return 0;
}

关于c++ - 需要一些方法将函数存储在列表中,然后调用它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7524023/

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