Frage zu KlassenEinbindungen



  • Hallo,

    ich hab schon unter verschiedenen Dingen gesucht, aber irgendwie weiß ich nicht genau, wie ich die richtigen Threads hierzu finden soll, aber denke, das sowas schon irgendwo gelöst wurde.

    Ich habe zwei Klassen, jedoch wenn ich diese gegenseitig include passieren merkwürdige Dinge, vielleicht könnt ihr mir ja fix helfen.

    (Ich habe mir c++ selbst beigebracht, daher würde ich mich über jegliche Konventionsbruchbemerkungen freuen).

    #pragma once
    #include "includes.h" //<< ist sowas hier sinnvoll, wenn man immer wieder die gleichen dateien wie zB window.h includen will?
    #include "CConnection.h"
    #include "CGame.h" //nur ein beispiel
    class CData
    {
    public:
    	CGame* g;
    };
    
    #pragma once
    #include "includes.h" 
    #include "CData.h"
    class CGame
    {
    public:
    	CData* d;
    };
    

    Das geht aber nicht, wenn ich "Cdata* d" weglasse, zum Beispiel, geht es auf einmal. Fehler total merkwürdig:
    "Es fehlt ; vor " @ "CData d;" Zeile

    Der Sinn dahinter: Ich möchte jeweils zwei Objekte miteinander verbinden, sodass diese sich gegenseitig aktualisieren können.
    Also CGame wird erstellt, erstellt dabei ein CData Objekt (zB mit this als Parameter)
    CData speichert dies und übergibt über set Methode die eigene Referenz.
    Geht das irgendwie oder benutzt man hierfür andere Vorgehensweisen? Danke für jegliche Hilfe und sorry, wenn ich mich ein bisschen schlecht ausdrücke :s



  • Das wurde hier schon öfters behandelt, daher nur als Stichworte: "cross reference" und "forward declaration"...



  • Danke, unter dem Stichwort werde ich meine Antwort finden! 🙂


Anmelden zum Antworten