hi, ich möchte ein arry von pointern erzeugen und dann darin objekte die mit new erzeugt wurden speichern. derzeit mach ich es so, aber esf unktioniert nciht so richig
C++:
class Set { public: Set(); Set(int x); ......... private: void resize(); SetMember * m_elements; //Pointer auf SetElemnte int m_count; //Anzahl Elemente der Menge int CUR_MAX; }; --------------------- Set::Set(int x):m_count(0), CUR_MAX(1) { m_elements[CUR_MAX]; //Hole mir Platz für CUR_MAX-Pointer SetMember * s = new SetMember(x); //Erzeuge neues Objekt m_elements[m_count] = s; //Zuweisen - tut es nicht, kompilerfehler-wieso? }
Zum einen ist m_elements kein Speicher zugewiesen, zum anderen ist das ein Array von SetMember-Objekten, nicht von Zeigern. Mit anderen Worten, das muss
C++:
SetMember **m_elements;
heißen, und du musst dem im Konstruktor Speicher zuweisen. (Und im Destruktor wieder löschen) -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra