string Member in einer Klasse führt zu Fehlern



  • Guten Abend erstmal,

    als ich heute eine Übung aus einem Tutorial machen wollte, bin ich an folgenden Fehlern hängen geblieben, die innerhalb meiner Klassendeklaration entstehen.

    window.h

    #ifndef WINDOW
    #define WINDOW
    
    #include<string>
    
    typedef unsigned short SHORT;
    
    enum Stil
    {
    	SSYMENU, MINBOX, MAXBOX, CLOSEBOX 
    };
    
    class window
    {
    private:
    	SHORT width, height;
    	SHORT xPos, yPos;
    	string titel;  //???
    public:
       //...
    };
    
    #endif
    

    Warum bekomme ich in der //???-Zeile folgende Fehlermeldungen?

    error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'titel'
    error C2501: 'string' : Fehlende Speicherklasse oder Typbezeichner
    error C2501: 'titel' : Fehlende Speicherklasse oder Typbezeichner

    die string-Klasse ist doch eingebunden 😕

    Danke schonmal im Vorraus

    Don Quijote



  • Don Quijote schrieb:

    #ifndef WINDOW
    #define WINDOW
    
    #include <string>
    
    typedef unsigned short SHORT; // Ist sowas nicht massiv irreführend?
    
    enum Stil
    {
    	SSYMENU, MINBOX, MAXBOX, CLOSEBOX 
    };
    
    class window
    {
    private:
    	SHORT width, height;
    	SHORT xPos, yPos;
    	string titel;  // Wie wäre es mit std::string?
    public:
       //...
    };
    
    #endif
    

    Eigentlich alle Funktionen/Klassen der Standardbibliothek in C++ liegen im Namensraum std.

    cu André
    P.S: Ganz davon abgesehen das ich niemals typedefs wegen reiner Schreibfaulheit machen würde. Bei komplexen Templates okay, aber bei unsigned short? (Noch dazu wenn man es dann SHORT und nicht zumindestens USHORT oder ähnlich nennt).



  • Danke.....diesen Fehler werd ich nicht nochmal machen.

    das mit "typedef" dient nur der Übung, damit ich die Bedeutung dieses Wortes behalte. Ich bin noch Anfänger und benutze alles so oft es geht in Übungsaufgaben. USHORT hmmm....eigentlich hast du in dieser Hinsicht vollkommen Recht.



  • Don Quijote schrieb:

    das mit "typedef" dient nur der Übung, damit ich die Bedeutung dieses Wortes behalte. Ich bin noch Anfänger und benutze alles so oft es geht in Übungsaufgaben.

    Schau aber, das das nicht zur Gewohnheit wird, denn diese Gefahr ist ziemlich gross. Versuch lieber, von Anfang an die Schlüsselwörter und Sprachkonstrukte sinnvoll einzusetzen.



  • Ja klar, das war das erste, was ich mir bei den Aufgaben überlegt habe. Ich setze sie bei Übungen so oft ein wie es geht oder bis ich sie sicher beherrsche.

    Trotzdem danke für den Hinweis


Anmelden zum Antworten