gpt4 book ai didi

c++ - std::Function 实例创建

转载 作者:行者123 更新时间:2023-11-27 23:02:28 25 4
gpt4 key购买 nike

大家好,我正在尝试使用以下设置创建一个类的实例:

class Interface
{
Interface(){}
virtual void init =0;
};

class InstanceCreation
{

void registerInstance(const std::string& name, std::function<Interface*(void)> interface )
{
functionMap[name] = interface
}


Interface* getInstance(const std::string& name)
{
Interface* temp;
auto itor = functionMap.find(name);
temp = itor->second;

return temp;
}

std::map<std::string, std::function<Interface*(void)> > functionMap;

};

编译失败,原因如下:

  temp = itor->second;

错误描述未能在 std::function<Interface*(void)> 之间转换和 Instance* .我如何实现这种转换(静态、动态转换不起作用)

作为对此的后续问题,有没有人知道如何让非空构造函数工作?

最佳答案

要调用该函数,请添加括号:

temp = itor->second();

关于c++ - std::Function 实例创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26412984/

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