我是C++的新手,我試圖製作一個小遊戲。我有這個名爲「UnitController」的類,它在地圖中存儲了「Unit」類的多個實例。該類還有一個方法「getUnit」,它應該返回其中一個存儲單元。從地圖中檢索對象實例
看來這種方法只是部分工作。我想我得到了一個單位的副本,而不是請求的實例。
任何人都可以指出我正確的方向嗎?
#include "UnitController.h"
#include "Unit.h"
using namespace ci;
using std::map;
UnitController::UnitController()
{
}
void UnitController::addUnit(Vec2f position)
{
Unit mUnit = Unit();
mUnit.setup(position);
Units.insert(std::pair<int,Unit>(Units.size()+1, mUnit));
}
Unit UnitController::getUnit(int k)
{
Unit selectedUnit = Units[0];
return selectedUnit;
}
void UnitController::update()
{
for(map<int,Unit>::iterator u = Units.begin(); u != Units.end(); ++u){
u->second.update();
}
}
void UnitController::draw()
{
for(map<int,Unit>::iterator u = Units.begin(); u != Units.end(); ++u){
u->second.draw();
}
}
如果K> = Units.size()? :-) – user1764961 2013-05-14 10:53:06
@ user1764961,它是一個'map',不是'vector'或'array'。 – hmjd 2013-05-14 10:54:54
正好。我不認爲OP會對這種行爲感到滿意。 – user1764961 2013-05-14 10:58:33