Verwendung des undefinierten Typs



  • Hallo;

    mein Compiler (Visual C++) meldet, dass eine Klasse nicht definiert ist, obwohl ich das getan habe:

    // 3DScenario.h (Deklaration der Klasse C3DScenario)
    class C3DScenario;
    
    // 3DScenario.cpp (Implementierung der Klasse C3DScenario)
    #include "3DScenario.h"
    class C3DScenario
    {
    ...
    }
    C3DScenario *Scenario; // Dieser Pointer ist das Problem
    
    // Space3D.h
    ...
    #include "3DScenario.h"
    extern C3DScenario *Scenario;
    
    // Space3D.cpp
    #include "Space3D.h"
    ...
    void RenderScenario(void)
    {
        Scenario->Render(); // Hier meldet der Compiler einen Fehler
    }
    

    Die Meldung des Compilers:
    "Space3D.cpp(433) : error C2027: Verwendung des undefinierten Typs "C3DScenario""

    Aber ich habe doch 3DScenario.h eingebunden, wo die Klasse deklariert ist!
    Wieso ist die trotzdem "undefiniert"?

    Tubos



  • Hi!

    Du hast die Header C3DScenario.h genannt und bindest 3DScenario.h ein. Aber imho kommt die Klassendefinition in die Header und die Methodendefinition in die Cpp-Datei.

    Code-Hacker



  • Daran hats nicht gelegen, ich habe mich nur bei dem Posting vertippt *g*
    Habs geändert.

    Aber der erste Tip, den du inzwischen gelöscht hast (Methoden auch deklarieren) hat geholfen!
    Danke!



  • Hi!

    Achso, ich hatte mir fast nicht vorstellen können das es doch richtig war, hatte es nur nochmal als Vermutung nach dem Edit hingeschrieben. Aber wenns doch richtig war hab ich ja jetzt auch nochmal was gelernt. 🙂

    Code-Hacker


Anmelden zum Antworten