这个问题可能很难理解,但问题很简单,我将在这里用简单的语言来描述它。现在,我的资源管理是:
cResMgr<cTexture> textures;
cResMgr<cSound> sounds;
我想做的是:
cResMgr resources;
resources.add<cTexture>(...);
resources.get<cSound>(...);
基本上,我的资源管理器具有“获取”和“添加”功能。我希望当我第一次调用 cWhatever 类型的函数时,它会为它创建一个容器。下次调用时,它就在那里(类似于函数中的静态变量)
问题是,我该如何实现它?我能想到的唯一解决方案是让每个资源都派生自空基类 cResource,这样我就可以拥有一个指向 cResource 的指针容器。问题是,资源类型不是我的(它们来自外部库)
有什么解决办法吗?