下面是一个示例的 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。

这个示例展示了如何创建一个带有 namerun 函数的 ins 对象,并且能够通过 execute 函数来执行 run 函数。同时,通过将自己上传到静态 ins_map 中,可以方便地进行管理和访问。

C++ 类 ins:存储函数和名称并管理访问

原文地址: https://www.cveoy.top/t/topic/pZbi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录