klassenbezeichner kein datentyp??



  • hi leute.
    also ich bin gerade voll geschockt.
    bastel grad an meinem Programm rum, und auf einmal erkennt der den klassennamen nicht als datentyp an ?!
    hab das headerfile zu 100% inkludiert. Die struktur sieht wie folgt aus:

    gui.h:
    class cGUI {
    /*...*/
    };
    
    net.cpp:
    #include "gui.h"
    
    typedef void (*PROCBLA)(cGUI *Instance, char *, char *);
    /*
    .
    .
    .
    */
    

    is doch eigentlich was selbstverständliches, dass das hier funktioniert oder?
    Der Compiler bringt folgenden Fehler:

    net.h:17: error: cGUIIRC' was not declared in this scope net.h:17: error:Instance' was not declared in this scope
    net.h:17: error: parse error before `*' token

    die klasse ist auch mit semikolon geschlossen usw. aber kann doch eigentlich nur an einem syntax fehler liegen oder?

    vielen dank schonmal für Antworten



  • woher kommt cGUIRC? Das kommt in dem Code überhaupt nicht vor.



  • ach sorry, ich hab noch vergessen, dass cGUI dinge vererbt ... es sollte also so heißen:

    class cGUI : QWidget /*....*/
    

    schätzungsweise muss ich die klasse also anders ansprechen, aber wie?



  • cGUIIRC = cGUI
    hab das IRC nur weggelassen für das beispiel damit ich nicht soviel tippen muss 🙂



  • keine ne idee?
    wollt mich noch verbessern: class cGUI : public QWidget ... sollte es natürlich heißen 😛



  • ah ich glaub ich bin der Sache etwas näher gekommen, es liegt höchstwarscheinlich daran (denke ich zumindest), dass sich die klassen gegenseitig benutzen, d.h:

    net.h
    inkludiert die gui.h

    wobei die gui.h auch schon auf die klasse von net.h zugreifen will.

    ich bräuchte also praktisch einen "klassen prototyp" gibts sowas?



  • cMogli schrieb:

    cGUIIRC = cGUI

    cGUIIRC == cGUI 😉

    cMogli schrieb:

    ich bräuchte also praktisch einen "klassen prototyp" gibts sowas?

    Ja:

    class cGUIIRC;
    

    Moritz


Anmelden zum Antworten