C++ 类 ins:存储函数和名称并管理访问
下面是一个示例的 C++ 类 ins 的实现:
#include <iostream>
#include <string>
#include <map>
#include <functional>
class ins {
private:
std::string name;
std::function<int(int)> run;
public:
ins(const std::string& n, const std::function<int(int)>& r) : name(n), run(r) {
// 在构造函数中将自己上传到 map ins_map
ins_map[name] = this;
}
int execute(int num) {
return run(num);
}
static std::map<std::string, ins*> ins_map;
};
std::map<std::string, ins*> ins::ins_map;
// 示例用法
int addOne(int num) {
return num + 1;
}
int main() {
ins myIns('addOne', addOne);
std::cout << myIns.execute(5) << std::endl; // 输出:6
return 0;
}
在这个示例中,我们定义了一个 ins 类,它包含了一个 std::string 类型的 name 和一个 std::function<int(int)> 类型的 run。构造函数用于初始化这两个变量,并将自己上传到 std::map<std::string, ins*> 类型的静态成员变量 ins_map 中。
execute 函数用于执行 run 函数,并传入一个整数参数 num。示例中还定义了一个 addOne 函数,用于将传入的整数加 1。在 main 函数中,我们创建了一个 myIns 对象,并传入 addOne 函数作为 run 函数的参数。然后调用 execute 函数,将 5 作为参数传入,输出结果为 6。
这个示例展示了如何创建一个带有 name 和 run 函数的 ins 对象,并且能够通过 execute 函数来执行 run 函数。同时,通过将自己上传到静态 ins_map 中,可以方便地进行管理和访问。
原文地址: https://www.cveoy.top/t/topic/pZbi 著作权归作者所有。请勿转载和采集!