Programmieren - alles kontrollieren 4.937 Themen, 20.647 Beiträge

C++ : gegenseitige Referenzierung

Dreamforger / 8 Antworten / Flachansicht Nickles

Hallo mal wieder.
Ich hab mal wieder ein triviales aber nerviges Problem mit C++: Ich habe zwei Klassen (jeweils mit header und c file). Reduziert sehen die beiden etwa so aus:

------ca.h--------
#include "cb.h"

class CA {
CB* other;
...
}

------cb.h--------
#include "ca.h"

class CB {
CA* other;
...
}

Die ... ersetzen Konstruktor, Destruktor und die eigentliche Funktionalität.

Das Problem ist jetzt das C++ beim Compilieren von CA, wg. include, CB übersetzt wird und darin findet es dann die Referenz auf CA, die aber noch nicht übersetzt wurde.

Ich hab schon alles mögliche mit extern und typedef ausprobiert, aber ich find die Richtige Syntax einfach nicht.

Danke für die Antworten
Dreamforger

bei Antwort benachrichtigen
Andreas42 Dreamforger „Vater und Kind waren keine Begriffe aus der OOP sondern steuerungsprioritäteten...“
Optionen

Hi!

"Steuerungsprioritäten im IK-Zyklus" sagt mir nun gar nicht, hört sich aber irgendwie gut an (hatte neulich erst "Inventursperre für Tablar mit Einlagerungsauftrag in AKL" auf Platz 1 gesetzt). ;-)

Scherz bei Seite, die Lösung mittels Vorwärtsdeklaration hast du ja inzwischen bekommen. Mein Vorschlag war eher ein Denkansatz, ob man die zwei verschiedenen Klassen braucht oder ob man auch mit einer Auskommen kann. Das ist mein üblicher Lösungsansatz, wenn zwischen zwei Klassen nur geringe Unterschiede bestehen.
Die dritte Lösung durch einen gemeinsamen Vorfahren, ist ja inzwischen auch gekommen.

Bis denn
Andreas

Hier steht was ueber mein altes Hard- und Softwaregedoens.
bei Antwort benachrichtigen