我有几个POD结构,所有人都有一个共同的数据字段uint32_t gID
。
struct component1
{
uint32_t ID;
//Other data
};
struct component2
{
uint32_t ID;
//Other data
};
struct component3
{
uint32_t ID;
//Other data
};
我会用工厂类来管理POD结构。
template <class Component>
class ComponentFactory
{
public:
//Activating/Deactivating components
private:
array<Component, 65536> m_components;
};
现在,m_components数组中的位置并不总是与组件ID相同。我怎样才能为ComponentFactory编写一个函数来返回某个索引处组件的ID? 例如,
uint32_t ComponentFactory::getIDatIndex(uint16_t index)
{
//Grab the ID of whatever component the factory manages.
return m_components[index].ID;
}
此外,是否可以使ComponentFactory类型安全,以便不会ComponentFactory<int>
或ComponentFactory<char>
?
答案 0 :(得分:1)
在更正模板语法后,您的工作正常。
template <class Component>
uint32_t ComponentFactory<Component>::getIDatIndex(uint16_t index)
{
//Grab the ID of whatever component the factory manages.
return m_components[index].ID;
}