我正在通過編寫遊戲來學習C++,並且遇到了一些問題:我有一個開始重複的代碼(我將添加一些其他組件),並且我想使用模板來改進它(我猜),我真的不知道如何使用。模板的使用
下面的代碼:
#include <memory>
#include "PositionComponent.h"
#include "VelocityComponent.h"
class ComponentManager
{
public:
ComponentManager();
void addComponent(Entity id, PositionComponent component);
void addComponent(Entity id, VelocityComponent component);
private:
std::map<Entity,std::shared_ptr<PositionComponent> > m_positionComponents;
std::map<Entity,std::shared_ptr<VelocityComponent> > m_velocityComponents;
};
和
#include "ComponentManager.h"
ComponentManager::ComponentManager()
{
}
void ComponentManager::addComponent(Entity id, PositionComponent component)
{
if (m_positionComponents.count(id) > 0)
{
Tools::log("couldn't add component");
}
// else if entity doesn't exist..
else
{
m_positionComponents[id] = std::make_shared<PositionComponent>(component);
}
}
void ComponentManager::addComponent(Entity id, VelocityComponent component)
{
if (m_velocityComponents.count(id) > 0)
{
Tools::log("couldn't add component");
}
// else if entity doesn't exist..
else
{
m_velocityComponents[id] = std::make_shared<VelocityComponent>(component);
}
}
如何使與模板的美麗?
謝謝!
一個模板類,也許嘗試代碼審查:HTTP://codereview.stackexchange。com/ –
覺得你最好使用繼承,而不是模板 – yizzlez
@awesomeyi或靜態多態,其中包括模板再次;-) ... –