クラスに関数があり、多かれ少なかれ次のように機能します。
class Player {
private:
Object* minions[16]
public:
void Summon(Object* obj);
};
Player::Summon(Object* obj) {
static int i = 0;
if (i == 16)
return;
minions[i] = obj;
i++;
}
次のように、複数のプレーヤーを使用しようとすると問題が発生します。
Player playerone;
Player playerthree;
playerone.Summon(new Object("o1"));
playerthree.Summon(new Object("o2"));
o1
はplayerone.minions[0]
予想どおり にo2
ありますが、は同じ変数を使用playerthree.minions[1]
する関数の にあります。関数が単一のインスタンスに静的変数を使用するようにする方法はありますが、インスタンスごとに個別の変数を使用しますか? equal toの最初の場所へのループを作成したり、のメンバーを直接作成したりできることはわかっていますが、これらのいずれかを実行する前に、より良い方法があるかどうかを知りたいです。Summon()
i
Summon()
i
i
for
minions[]
NULL
i
Player