gpt4 book ai didi

c++ - C++类构造函数中的函数指针

转载 作者:太空宇宙 更新时间:2023-11-04 16:23:14 27 4
gpt4 key购买 nike

<分区>

我有一个带有构造函数的模板类,它接受一个参数;指向函数的函数指针,该函数采用第二个模板类型的参数。并返回第一个模板类型的元素。

代码如下:

缓存 Controller .hpp:

template<class TYPE, class KEY>
class cache
{
private:
TYPE (*create_func)(KEY);
public:
cache(TYPE (*func)(KEY));
};

extern sf::Texture * create_texture(std::string path);

缓存 Controller .cpp:

template<class TYPE, class KEY>
cache<TYPE, KEY>::cache(TYPE (*func)(KEY))
{
this->create_func = func;
}

sf::Texture * create_texture(std::string path)
{
sf::Texture * tex_p = new sf::Texture;
tex_p->loadFromFile(path);
return tex_p;
}

测试代码:

cache<sf::Texture *, std::string> tcache(&create_texture);

但是,当我链接时出现此错误:

[Linker error] main.cpp:11: undefined reference to `cache<sf::Texture*, std::string>::cache(sf::Texture* (*)(std::string))' 

当然,如果有任何更简单的方法来实现具有任意键、值和创建函数的对象缓存,我会洗耳恭听。

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