TVE
Erfahrenes Mitglied
Hi Leute
Ich kriege das mit den eigenen Klassen verwaltet durch einen Vektor einfach nicht richtig zustande.
Bis hier hin scheint alles in Ordnung zu sein. Die Instanzen wurden erstellt und der jeweilige Pointer in den Vektor geschrieben.
So nun beginnt mein Übel, wenn ich versuche alle Elemente in einer Schleife durchlaufen zu lassen und irgendwelche Member-Prozeduren aufrufe. In diesem Beispiel möchte ich einfach den Wert ausgeben, den ich damals beim Konstruktor (der Integer click_x) angegeben habe. Meiner Meinung nach hätte das so gehen sollen:
Ich habe mich hierbei auf das Beispiel beim Deallokieren gestützt, was zu funktionieren scheint:
Kann mir da jemand auf die Sprünge helfen?
Ich kriege das mit den eigenen Klassen verwaltet durch einen Vektor einfach nicht richtig zustande.
Code:
//List for storing all the pointers to all objects
list<ReObject*> vectorObject;
...
//ReMobile is a sub class of ReObject, the constructor takes 2 int and 2 char const *
ReMobile *newInstance = new ReMobile(click_x,click_y,"type","name");
vectorObject.push_back(newInstance);
Bis hier hin scheint alles in Ordnung zu sein. Die Instanzen wurden erstellt und der jeweilige Pointer in den Vektor geschrieben.
So nun beginnt mein Übel, wenn ich versuche alle Elemente in einer Schleife durchlaufen zu lassen und irgendwelche Member-Prozeduren aufrufe. In diesem Beispiel möchte ich einfach den Wert ausgeben, den ich damals beim Konstruktor (der Integer click_x) angegeben habe. Meiner Meinung nach hätte das so gehen sollen:
Code:
//This doesn't work! How can I correctly access the class in the memory?
vector<ReObject*>::iterator iVectorObject = vectorObject.begin();
while(iVectorObject != vectorObject.end())
{
//Do stuff
if(*iVectorObject != NULL)
{
cout<<"An element has X: " << (*iVectorObject).getX() << endl;
}
//Iterate...
iVectorObject++;
}
Ich habe mich hierbei auf das Beispiel beim Deallokieren gestützt, was zu funktionieren scheint:
Code:
//End
vector<ReObject*>::iterator iVectorObject = vectorObject.begin();
while(iVectorObject != vectorObject.end())
{
if(*iVectorObject != NULL )
{
delete(*iVectorObject);
}
iVectorObject++;
}
Kann mir da jemand auf die Sprünge helfen?