E2303 Typname erwartet



  • <main.h>

    #ifndef xpackH
    #define xpackH
    
    ...
    #include "utilities.h"
    ...
    
    //---------------------------------------------------------------------------
    class TF_Main : public TForm
    {
    __published:
        ....
    private:
        ....
        OperatorManager *_operatorManager;
        Utilities *_util;
        ...
    
    public: 
        ....
    };
    
    #endif
    

    <utilities.h>

    #ifndef utilitiesH
    #define utilitiesH
    ...
    
    //---------------------------------------------------------------------------
    class Utilities
    {
    public:
        Utilities();
        ~Utilities();
        ...
    };
    #endif
    

    Wenn ich main.h kompiliere, ist es gar kein Problem. Aber wenn ich utilities.h kompiliere, bekomme ich immer die folgende Fehlermeldungen in main.h:
    [c++ Error] main.h (1266): E2303 Typname erwartet
    [c++ Error] main.h (1266): E2139 in Deklaration fehlt;

    kennt jemand zufällig den Grund? Vielen Dank!



  • Vielleicht gegenseitige includes? Such doch mal nach forward declaration.

    Gruß,

    Alexander



  • Stimmt. Ich habe schon mal nach forward declaration nachgeguckt. Der Fehler ist aufgetreten, weil class Utilities undirekt include von "main.h" hat.
    Danke!


Anmelden zum Antworten