私はゲームをプログラミングすることによって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または静的ポリモーフィズム(テンプレートを再度含む);-) –