Abstrakte Klassen & STL
-
Hi,
ich habe zu meinem Problem die Forensuche schon bedient aber nichts gesucht.
Und zwar habe ich eine abstrakte Basis-Klasse, z.B. so:class Base { public: virtual void doSomething(); };Davon erbe ich jetzt ein andere Klasse:
class Derived { public: void doSomething() { //mache hier irgendwas } void andereMethode(); };Um das jetzt benutzen zu können, muss ich meine Objekte so anlegen:
Base* b = new Derive();Und um jetzt ein Liste mit solchen Objekten zu verwalten benutze ich eine STL Liste. Diese muss ich ja dann so anlegen:
list<Base*> liste;Und um das obige erstellte Objekt hinzufügen würde ich ja dann folgendes machen:
liste.push_back(b);Aber wie iteriere ich jetzt über diese Liste, so dass immer die richtigen Methoden polymorph aufgelöst werden ? Oder ist da jetzt schon ein Fehler drinnen ?
-
Ups, das muss bei der Derived-Klasse natürlich so heißen:
[cpp]
class Derived : public Base
{
public:
void doSomething() { //mache hier etwas }
void andereMethode();
};
-
arki schrieb:
Hi,
ich habe zu meinem Problem die Forensuche schon bedient aber nichts gesucht.
*lol*

-
Argh, ja nochn Fehler. Man Man

Den abschließenden Code-Tag hab ich auch noch vergessen.Naja hoffentlich kann mir wer helfen..
-
list<Base*>::iterator it = l.begin(); for(;it!= l.end();++it) (*it)->doSomething();MfG Spacelord
-
Danke, so funktioniert es

-
Apollon schrieb:
arki schrieb:
Hi,
ich habe zu meinem Problem die Forensuche schon bedient aber nichts gesucht.
*lol*

wer nichts findet, der sucht
