n Objekte zur Laufzeit erstellen

hury

Erfahrenes Mitglied
Hallo,

ich habe eine grundsätzliche Frage: zur Laufzeit erstelle ich n Objekte, wobei n auch nur während der Laufzeit berechnet wird. Wie kann man das jetzt handhaben? Muss ich dafür eine Liste mit den Objekten erstellen?
Hätte jemand evtl ein Codebeispiel?

gruß
Alex
 
Hi,

das geht ganz einfach. Du kannst das mit "new" machen. Hier ein Beispiel für ein int-Array

Code:
int* objekte;
int n = 100; // dein n, das du berechnest
objekte = new int[n];
if(!objekte)
{
  //FEHLER
}
...


delete[] objekte;

Zugriff dann einfach wie bei normalen Arrays auch per

Code:
objekte[0]; objekte[1]; ... objekte[i]  (wobei i < n sein muss!)
 
Zuletzt bearbeitet:
Ich hatte es so versucht:
(das Ganze in einer entsprechenden Schleife, hier rausgenommen zwecks Übersichtlichkeit)

vector<DeskIcon*> iconVector;
DeskIcon *iconPointer;

iconPointer = new DeskIcon(1);
iconVector.push_back(iconPointer);
iconPointer = new DeskIcon(1);
iconVector.push_back(iconPointer);
iconPointer = new DeskIcon(2);
iconVector.push_back(iconPointer);
iconPointer = new DeskIcon(2);
iconVector.push_back(iconPointer);

Hiernach befinden sich zwar 4 Pointer in dem Vektor, allerdings haben die alle den Wert "2" als Parameter, wenn ich diesen auslese.
Was mache ich falsch?

gruß
Alex
 
Hmm das ist unschön, was du da machst.

C++:
std::vector<DeskIcon> icons;
icons.push_back(DeskIcon(2));
// ...
... sonst muss du dich um das Aufräumen kümmern.

Und wenn du es ganz von Hand (ohne std::vector o. anderen Containern) machen willst, brauchst du replacemend new, um die richtigen Konstruktorparameter zu übergeben.
 
Zurück