Dynamisches Array von Objekten erzeugen
-
Hi,
ist es möglich ein Array von Objekten zu erzeugen, wo die Objekte nicht durch den Standardkonstruktor sondern durch ein Konstruktor mit Parametern erstellt wird?
Ausgangsproblem:
Ich will mehrere Objekte (hier als Bleistift Katzen) erstellen, die einen Namen haben.class KATZE { private: string sName;//Name der Katze public: KATZE(); //Standard Konstruktor KATZE(string sName); //Konstruktor für den Namen ~KATZE(); //Dekonstruktor }
int main() { KATZE *Lisa = new KATZE("Lisa"); KATZE *Berta = new KATZE("Berta"); KATZE *Hans = new KATZE("Hans"); KATZE *Lili = new KATZE("Lili"); return 0; }
Ist es nun möglich ein Array zu machen der dieses beinhaltet? Die Namen würden dann in einem extra Array vom Typ String stehen. Und die Objekterzeugung würde dann in einem Schleife erfolgen.
-
Die Standard Lösung für dynamische Arrays ist die
std::vector
Klasse. Wie die Klasse zu verwenden ist findest du in jedem C++ Buch und im Internet. Die Verwendung ist aber auch nicht so schwer, da sich vector fast wie ein Array verhält. Damit könnte deine main Funktion dann etwa so aussehen:int main() { std::vector<KATZE> katzen; katzen.push_back(KATZE("Lisa")); // usw... // zugriff durch katzen[0], katzen[1] ... bis katzen[katzen.size()-1] }
-
Danke dir für deine schnelle und hilfreiche Antwort