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 „Ich wollte es euch ja ersparen: Es geht um Inverse Kinematik. Ein IKSkelett ist...“
Optionen

Hi!

Mein Ansatz wäre gewesen die Klasse Kind als Nachfahre der Klasse Vater zu deklarieren. Vater enthält nur eine Referenz auf Vater (und nicht auf Kind, wie in deinem Beispiel).
Da Kind ein Nachfahre von Vater ist, kann man dann dort natürlich einen Zeiger auf eine Kind-Instanz übergeben.

Im Moment ist mir aber der funktionelle Unterschied zwischen Vater- und Kind-Gelenk noch nicht klar.
Worauf ich hinaus will ist: evtl. kommt man mit einer Gelenkklasse aus und legt den Unterschied zwischen Vater und Kind einfach über ein Attribut fest.

Bis denn
Andreas

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