[C++] Klasse1 enthält ein Klasse2, Klasse2 enthält ein Klasse1: Problem

Kampfgnom

Lt. Commander
Registriert
Jan. 2005
Beiträge
1.075
Folgendes: Ich habe 2 Klassen - Planet und Object. Beide Klassen haben als Member einen Pointer auf eine Instanz der jeweiligen anderen Klasse. Dass das so nicht geht, und warum das so nicht geht ist mir klar.
Nur: Was mach ich nun? Ich brauche diese beiden Member eigentlich...

Planet.h
Code:
#ifndef PLANET_H
#define PLANET_H

#include "Object.h"

class Planet
{
      private:
           Object* m_object;
....
}
#endif
Object.h
Code:
#ifndef OBJECT_H
#define OBJECT_H

#include "Planet.h"

class Object
{
      private:
           Planet* m_planet;
....
}
#endif

Danke
 
Hier war schon mal so etwas ähnliches:
https://www.computerbase.de/forum/threads/c-klassen-deklarieren-zu-beginn.206193/

Prinzipiell, kannst Du das mit Forward Deklarationen angehen.
D.h. planet.h

Code:
class Object;

class Planet
{
      private:
           Object* m_object;
....
}

object.h
Code:
class Planet;

class Object
{
      private:
           Planet* m_planet;
....
}

Das funktioniert solange Du in den Headern auch nur mit Pointern arbeitest. Der Inhalt der Klasse ist schliesslich durch die reine Forward Deklaration noch nicht bekannt. D.h. der Code der Methoden, die mit den Pointern arbeiten, kann dann nur im .cpp File stehen.

MfG

Arnd
 
Da hab ich wohl mal irgendwann total geschlafen als ich die Grundlagen gelesen habe...

Vielen lieben Dank :)
 
Zurück
Oben