Objekt in Klasse erzeugen



  • Hier ist der Code der Funktion Spiel in der Klasse Spiel wo ich das Objekt erstellen möchte.

    CSpiel::Spiel()
    {
    CRessourcen Res;
    
    //Spielsteuerung
    }
    

    Und das ist die besagte Klasse CRessourcen

    class CRessourcen
    {
     public
    
         CRessourcen();
        ~CRessourcen();
    
    };
    
    CRessourcen::CRessourcen(){}
    CRessourcen::~CRessourcen(){}
    

    Die Klasse funktioniert, ich konnte sie in Main erstellen. Aber da brauch ich sie ja leider nicht.



  • Habs raus gefunden.

    Ich habe eine Headerdatei in der ich alle Header zusammen gefasst habe.
    dort habe ich dann auch Ressourcenmanager.h includiert und es ging nicht.
    Selbe datei habe ich nun rausgenommen und direkt in der in der datei mit der Klasse Spiel includiert und es geht.



  • drakon schrieb:

    Hast du den Header, indem du die Klasse des Ressourcenmanagers definierst auch included?



  • Also nochmals: Hast du den Header, in dem die Klasse CRessourcen steht, zum Zeitpunkt der Konstruktordefinition CSpiel::CSpiel (ich hoffe, das fehlende C war ein Tippfehler im Forum) inkludiert?



  • Saibot1988 schrieb:

    Ich habe eine Headerdatei in der ich alle Header zusammen gefasst habe.

    Mach das nicht. Der einzige Grund, diese Vorgehensweise zu wählen, ist, weil man nichts dabei denken muss. Dafür nimmst du erhebliche Nachteile in Kauf, weil du den Überblick über die Klassenzuständigkeiten verlierst, enorme Abhängigkeiten im Projekt aufbaust und die Kompilierzeit sehr schnell in die Höhe schiessen lässt.

    Saibot1988 schrieb:

    Selbe datei habe ich nun rausgenommen und direkt in der in der datei mit der Klasse Spiel includiert und es geht.

    So ists gut. Mach das am besten so schnell wie möglich auch mit den anderen Dateien.



  • oh da vehlt das void also...

    void CSpiel::Spiel()
    {
    
    }
    

    das problem hing mit der reihenfolge der Header datein zusammen er sollte in Spiel das Ressourcen objekt erstellen das war ihm aber zu der zeit noch nicht bekannt.



  • Saibot1988 schrieb:

    oh da vehlt das void also...

    void CSpiel::Spiel()
    {
    
    }
    

    Falsch, Konstruktoren haben nie Rückgabewerte. Du hast ein "C" vergessen.

    Saibot1988 schrieb:

    das problem hing mit der reihenfolge der Header datein zusammen er sollte in Spiel das Ressourcen objekt erstellen das war ihm aber zu der zeit noch nicht bekannt.

    In meinem letzten Beitrag habe ich noch was dazu geschrieben, ich weiss nicht, ob du ihn gesehen hast.



  • Falsch, Konstruktoren haben nie Rückgabewerte. Du hast ein "C" vergessen.

    Ich weiss das stellt ja auch nicht den Konstruktor da sonder die Funktion Spiel.
    Ich habe nur den ganzen Steuerungskram rausgenommen.



  • Saibot1988 schrieb:

    Ich weiss das stellt ja auch nicht den Konstruktor da sonder die Funktion Spiel.

    Ah, stimmt, da habe ich irgendwie ein Durcheinander gemacht. Könnte auch an den schlecht gewählten Bezeichnern liegen... :p

    Einen Zentralheader würde ich trotzdem nicht benutzen. 😉



  • Also ich dachte auch, das wäre der Konstruktor. 🙂 So kann man sich täuschen ^^


Anmelden zum Antworten