Ich bin ein Ökosystem in C++ zu machen, wo jedenANIMAL
auf meinem playing_field
wird grow_older()
am Ende des Jahres.Erhöhungsschritte nicht-statische Variable über statische Funktion
class ANIMAL
{
private:
int age;
public:
ANIMAL()
{
age=0;
}
static void grow_older(){ age++; }
};
Ich weiß, dass static methods can only use static data, aber gibt es eine elegante Möglichkeit, etwas ähnlich ein ANIMAL.grow_older();
haben? Ich könnte iterieren durch meine playing_field
und rufen Sie grow_older();
auf jedes Tier, aber ich hatte gehofft, es gibt ein Konzept da draußen, dass ich nicht bewusst, dass die Iteration durch jede Instanz von ANIMAL
explizit vermeidet.
Sie sollten C++ als Tag einfügen, wenn Sie hier Fragen zu C++ stellen. – Laurel
Wenn jedes Tier eine eigene "age" -Instanz benötigt, können Sie stattdessen einen festen Datenmember 'time_of_birth' speichern und nur eine statische' current_time' inkrementieren ... und dann die Differenz nur bei Bedarf berechnen. Wenn ein "ANIMAL" "geboren" (konstruiert?) Ist, würden Sie "time_of_birth = current_time;" zuweisen. – mah
Aber ... Diese Anfrage ergibt für mich keinen Sinn. Ein Tier ist keine Sammlung von Tieren. –