CompileError



  • Hallo,

    ich habe hier einen Fehler, den ich mir absolut nicht erklären kann. Ich benutze VS 2010 und habe folgenden Header (Overlay.h):

    #include <iostream>
    ...
    
    namespace ffd {
    
    class RenderQueue;
    class RenderTarget;
    class VertexData;
    class IndexData;
    
    class OverlayManager {
    private:
       RenderTarget*	mRenderTarget;   // Hier ist RenderTarget rot unterkringelt
    

    In diesem ist in der Zeile RenderTarget* mRenderTarget; das
    RenderTarget rot unterkringelt mit der Meldung:

    class ffd::RenderTarget

    Error: Variable ffd::RenderTarget is not a type name

    Was soll das bedeuten? Ich habe doch eine Vorwärtsdeklaration auf RenderTarget. Wieso kennt er den Typ dennoch nicht? 😕



  • Ah, ich glaub ich habs gefunden!

    In meiner .cpp hatte ich den Ctor falsch definiert (Overlay::OverlayComponent statt Overlay::Overlay).

    Wieso hat das aber sogar Auswirkungen auf den Header? Der ganze Header Code steht doch letztlich VOR meinem Code aus der .cpp?!



  • Kann ich nicht nachvollziehen:

    #include <iostream>
    
    namespace ffd {
    
    	class RenderQueue;
    	class RenderTarget;
    	class VertexData;
    	class IndexData;
    
    	class OverlayManager {
    		private:
    			RenderTarget *mRenderTarget;   // Hier ist RenderTarget rot unterkringelt 
    	};
    }
    
    int main()
    {
    }
    
    ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
    


  • Fragga schrieb:

    Wieso hat das aber sogar Auswirkungen auf den Header? Der ganze Header Code steht doch letztlich VOR meinem Code aus der .cpp?!

    Solange wir deinen echten Code nicht haben, haben wir keine Lust dir zu helfen. Schließlich sind meine und Swordfishs Glaskugeln gerade in der Reinigung, und da bleiben sie noch bis Montag...


  • Mod

    Gib nicht so viel auf die Hilfsmittel deiner IDE. Die können niemals C++-Code vollständig nebenbei parsen, das wäre viel zu aufwendig. Die nutzen irgendwelche Vereinfachungen und manchmal stimmen diese Analysen eben nicht, sie sind nur eine nette Hilfestellung. Das letzte Wort über die Korrektheit deines Codes hat jedenfalls der Compiler.

    Warum das allerdings in diesem ziemlich einfach gestrickten Fall schon schief geht ist mir ein Rätsel, vielleicht hast du die IDE irgendwo an anderer Stelle verwirrt.


Log in to reply