Missing ; before Identifier - Finde einfach keine Lösung



  • Moin moin,

    Zuerst handelt es sich hier nur um eine Win32-Konsolenanwendungen und hätte deshalb eigentlich ins Win32Konsolen Subforum gehört, aber das ist anscheinend geschlossen.. (nicht hauen wenn der Thread deshalb nicht hierher gehört 🙄 ) Ich hoffe ihr könnt mir trotzdem weiterhelfen.
    Bin ein ziemlicher Anfänger, daher ists gut möglich, dass ich einen auffälligen Fehler übersehe.

    Das Programm soll lediglich die Möglichkeit bieten ein Datum anzugeben (wobei beim Monat überprüft wird ob es sich um eine Zahl zwischen 1 und 12 handelt).

    Mit der Methode toString() sollen Tag, Monat, Jahr in dieser Reihenfolge ausgegeben werden.

    In Date.h wird mir aber in Zeile 23 angezeigt
    "error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'toString'

    #ifndef DATE_H
    #define DATE_H
    #include<string>
    
    class Date
    {
    
    private:
    	int day;
    	int month;
    	int year;
    
    public:
    	Date(int, int, int);
    
    	void setDay(int);
    	int getDay();
    	void setMonth(int);
    	int getMonth();
    	void setYear(int);
    	int getYear();
    	string toString();
    
    };
    
    #endif
    

    Das ganze wird in der Date.cpp inkludiert und der wichtige Teil dort sieht so aus

    string Date::toString()
    {
    	return "The Date is: " + to_string(getDay()) + "." + to_string(getMonth()) + "." + to_string(getYear());
    }
    

    Ich hab schon viel nachgeschaut, aber überall wo der Fehler sonst aufgetreten ist wurden immer Header in andere Header inkludiert, was hier ja denk ich nicht der Fall ist.

    Hoffe ihr könnt mir damit helfen

    LG GLL



  • Die Standard-Datentypen befinden sich im Namensbereich (namespace) "std", daher mußt du

    std::string toString();
    

    schreiben (in der CPP-Datei hast du wahrscheinlich "using namespace std;" stehen, daher brauchst du es dort nicht explizit anzugeben - in einer Headerdatei gehört das aber nicht rein und sollte daher explizit mittels "std::" angegeben werden).



  • Oh wow.... Wie konnte ich das denn bitte übersehen...Ich wusste, dass das sowas dummes sein muss.
    Dankeschön 🙂


Anmelden zum Antworten