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


Anmelden zum Antworten