Instanz aus Pointer auf Instanzvariable bestimmen
-
Hallo,
In einer Klasse A werden in einer Methode A1 Objekte der Klasse B erstellt und in einem vector gespeichert. Wenn ich später ein Objekt B lösche, möchte ich zuvor noch eine andere Methode A2 aus Klasse A aufrufen -> deshalb möchte ich auf das Parent Objekt von Objekt B zugreifen. Es gibt doch da bestimmt eine Standardfunktion auf die zugehörige Instanz wieder zuzugreifen?
lieben gruß,
dioskur
-
Sorry, ich verstehe nicht ganz, was du meinst. Parentobjekt? Meinst du Basisklasse?
Am besten veranschaulichst du dein Anliegen mit einem kleinen Stück Code.
-
Nur weil B von A erzeugt wurde, heisst das nicht, dass eine Beziehung zwischen denen besteht.. Ansonsten musst du diese Bezieung selbst einbauen, indem du einen Zeiger auf den Erzeuger speichert und dann kannst du auch ganz einfach im Destruktor von B eine beliebige Funktion darauf aufrufen.
class A { public: B* makeB () {...} void foo (); }; class B { ~B() { erzeuger->foo(); } private: A* erzeuger; };
-
Hallo,
Ja mit dem Zeiger hatte ich so gelöst, dass auf die ganze Klasse der Pointer zeigt (musste ich einen void - Pointer definieren, wegen ungünstiger Verschachtelung). Danke für die Hilfe, hatte schon die ganze Zeit herumgesucht, ob es da nicht irgendeinen Zusammenhang gibt und jetzt weiß ich, dass es leider nicht wirklich möglich ist (ist im Prinzip ja auch logisch).
Beste Gruß,
dioskur
-
dioskur schrieb:
musste ich einen void - Pointer definieren, wegen ungünstiger Verschachtelung
Das deutet eigentlich eindeutig auf Designfehler hin.
cu André