steckl: C++-Klassen: Beidseitig gerichtete Assoziation

Beitrag lesen

Hi,

Ich kann dir jetzt nicht direkt konkret helfen, aber irgendwie scheint dein Ansatz komisch.

Er ist genau wie deiner. Vielleicht ist es nur nicht so rüber gekommen, weil ich ein einfacheres Code-Beispiel gewählt, da es hier schon nicht klappt.

Ich hätte es so gemacht, dass ich eine Klasse für das Spiel machen würde und eine Klasse für einen Spieler. Da ich kein C++ kann hier ein wenig Pseudocode:

class Game {

private array players;
public method addPlayer(player) { this.players.push(player) };
public method start() {};
}

class Player {
private object game;
private constructor Player(game) { this.game = game; }
}

  
Genau so hätte ich es auch gemacht, nur muss ich statt "private object game" den Datentyp (bzw. Klassenname) von game angeben, in diesem Fall wäre das Game.  
Die Deklaration der Klassen Game und Player möchte ich in 2 unterschiedliche Module packen (wie in meinem Beispiel classA und classB).  
Wenn sich die beiden Module jetzt gegenseitig einbinden sollen sagt der Compiler, dass der Datentyp nicht bekannt ist.  
  

> Dann hast du deine Beziehungen wunderbar abgebildet und die Spieler können auf das Spiel zugreifen und das Spiel weiß welche Spieler aktuell mitspielen.  
  
Ja, genau.  
  

> Ich weiß nicht ob ich deine Frage richtig verstanden habe, aber so würde ich an die Sache herangehen. Wenn ich ganz falsch liege dann freue ich mich schon auf eine Erklärung wie man es richig[er] macht :D  
  
Du hast es mir so erklärt, wie ich es auch machen wollte, aber nicht in C++ umsetzen kann.  
  
mfG,  
steckl