我是新來的C++中的多態。在我的構造函數中,我需要幾個對象並創建一個生物集合。當我更改一個對象時,它會更改所有相同的對象。我不知道爲什麼會發生這種情況。多態C++,當對一個對象進行更改時,所有對象都發生變化
在我的構造函數中。
lmaxSize=9;
lmiddleSize=6;
lsmallSize=3;
int j=0;
for(int i=0;i<lmaxSize;i++)
{
if(j=3)
{
j=0;
}
if(i<lsmallSize)
{
creature[i]=&dizzy[j];
}
else if(i>=lsmallSize && i<lmiddleSize)
{
creature[i]= &pred[j];
}
else
{
creature[i]=&agile[j];
}
j++;
}
當我更改pred對象時,所有pred對象都會改變。例如,當我使用消耗能量時,它會改變所有預測對象的能量。不知道爲什麼
void collections::consumeEnergy()
{
int creatureNum=0;
cin>>creatureNum;
creature[creatureNum]->consumeEnergyUnits();
}
predatorCreature
void predatorCreature::consumeEnergyUnits()
{
if (_consume < 10)
{
_energyUnits -= 2;
_energyLevel += 1;
}
else if (_consume <= 30)
{
_energyUnits -= 5;
_energyLevel += 2;
}
else
{
_energyUnits -= 7;
_energyLevel += 4;
}
}
agileCreature
void agileCreature::consumeEnergyUnits()
{
if (_consume < 10)
{
_energyUnits -= 2;
_energyLevel += 1;
}
else if (_consume <= 30)
{
_energyUnits -= 5;
_energyLevel += 2;
}
else
{
_energyUnits -= 7;
_energyLevel += 4;
}
}
向我們展示您的類定義 – Sid 2012-02-28 21:27:40
代碼中沒有足夠的'std :: unique_ptr'。 – 2012-02-28 21:31:48