• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

C++: Klassenabhängigkeiten auflösen?

thw

Newbie
Hallo,

ich arbeite gerade (im Rahmen der Prüfungsvorbereitung) an einer objektorientierten Impementierung einer Listenverwaltung in C++. Dafür habe ich eine Klasse LIST welche (Überraschung!) die Liste selbst repräsentiert sowie eine Klasse ELEMENT, welche ein Element dieser Klasse beschreibt. Die Klasse LIST hat einige Memberfunktionen, die mit Pointern auf ELEMENT-Objekte hantieren (z.B. GetFirst()). Jetzt möchte ich gern in der Klasse ELEMENT auch vermerken, zu welcher Liste dieses ELEMENT gehört - in Form eines Pointers auf das zugehörige LIST-Objekt (LIST*). Leider komme ich mit dieser gegenseitigen Abhängigkeit nicht so richtig klar. Ich habe zuerst die Klasse ELEMENT definiert, jetzt beschwert sich allerdings der Compiler in der Zeile LIST* hostlist, dass LIST nirgends definiert ist. Definiere ich zuerst LIST, gibt's Fehler weil ELEMENT unbekannt ist. Wie kann ich diesen Kreis durchbrechen?

Danke,
thw

PS: Ja, die Klassendefinitionen sind jeweils in einem eigenen Headerfile. Trotzdem muss ja eines imemr zuerst eingebunden werden :-/
 

oc2pus

Ultimate Guru
du brauchst dazu eine forward Deklaration

z.Bsp im Liste.hpp vor der Deklaration / Definition der Klasse Liste das einfügen:
class Element;

dann kennt der Compiler den Bezeichner Element und erst der Linker wird dann maulen, wenn es keine Klasse Element gibt.
 
Oben