Fehlermeldung, unbekannt was der Grund ist



  • Hallo,

    der Compiler zeigt einen Fehler an, wo ich nicht weiß, woran es liegt.
    Ich muss dazu sagen, ich hab nur eine weitere Methode hinzugefügt und erhalte jetzt diese Fehlermeldung. Die Methode wurde auch richtig geschrieben, da bin ich mir sicher.

    Kennt jemand diese Fehlermeldung?

    <fehlermeldung>

    ------ Erstellen gestartet: Projekt: crosslauf, Konfiguration: Debug Win32 ------
    Kompilieren...
    Main.cpp
    C:\Programme\Microsoft Visual Studio 8\VC\include\iostream(12) : error C2059: Syntaxfehler: 'namespace'
    C:\Programme\Microsoft Visual Studio 8\VC\include\iostream(12) : error C2334: Unerwartete(s) Token vor '{'; sichtbarer Funktionstext wird übersprungen
    .\Main.cpp(3) : error C2059: Syntaxfehler: 'namespace'
    .\Main.cpp(3) : error C2238: Unerwartete(s) Token vor ';'
    .\Main.cpp(114) : fatal error C1075: Dateiende erreicht, bevor das zugehörige Element für das linke Element Klammer "{" in "c:\dokumente und einstellungen\m\desktop\richtiger crosslauf\crosslauf\crosslauf\Laeufer.h(3)" gefunden wurde
    Laeufer.cpp
    C:\Programme\Microsoft Visual Studio 8\VC\include\iostream(12) : error C2059: Syntaxfehler: 'namespace'
    C:\Programme\Microsoft Visual Studio 8\VC\include\iostream(12) : error C2334: Unerwartete(s) Token vor '{'; sichtbarer Funktionstext wird übersprungen
    .\Laeufer.cpp(4) : error C2059: Syntaxfehler: 'namespace'
    .\Laeufer.cpp(4) : error C2238: Unerwartete(s) Token vor ';'
    .\Laeufer.cpp(7) : error C2535: 'Laeufer::Laeufer(void)': Memberfunktion bereits definiert oder deklariert
    c:\dokumente und einstellungen\m\desktop\richtiger crosslauf\crosslauf\crosslauf\Laeufer.h(16): Siehe Deklaration von 'Laeufer::Laeufer'
    .\Laeufer.cpp(10) : error C2535: 'Laeufer::Laeufer(int,std::string,std::string,int,char,std::string)': Memberfunktion bereits definiert oder deklariert
    c:\dokumente und einstellungen\m\desktop\richtiger crosslauf\crosslauf\crosslauf\Laeufer.h(17): Siehe Deklaration von 'Laeufer::Laeufer'
    .\Laeufer.cpp(20) : error C2535: 'Laeufer::~Laeufer(void)': Memberfunktion bereits definiert oder deklariert
    c:\dokumente und einstellungen\m\desktop\richtiger crosslauf\crosslauf\crosslauf\Laeufer.h(18): Siehe Deklaration von 'Laeufer::~Laeufer'
    .\Laeufer.cpp(23) : error C2535: 'void Laeufer::anlegen(void)': Memberfunktion bereits definiert oder deklariert
    c:\dokumente und einstellungen\m\desktop\richtiger crosslauf\crosslauf\crosslauf\Laeufer.h(19): Siehe Deklaration von 'Laeufer::anlegen'
    .\Laeufer.cpp(38) : error C2535: 'void Laeufer::ausgeben(void)': Memberfunktion bereits definiert oder deklariert
    c:\dokumente und einstellungen\m\desktop\richtiger crosslauf\crosslauf\crosslauf\Laeufer.h(20): Siehe Deklaration von 'Laeufer::ausgeben'
    .\Laeufer.cpp(48) : error C2535: 'int Laeufer::getstartnr(void)': Memberfunktion bereits definiert oder deklariert
    c:\dokumente und einstellungen\m\desktop\richtiger crosslauf\crosslauf\crosslauf\Laeufer.h(21): Siehe Deklaration von 'Laeufer::getstartnr'
    .\Laeufer.cpp(53) : error C2535: 'int Laeufer::getAlter(void)': Memberfunktion bereits definiert oder deklariert
    c:\dokumente und einstellungen\m\desktop\richtiger crosslauf\crosslauf\crosslauf\Laeufer.h(22): Siehe Deklaration von 'Laeufer::getAlter'
    .\Laeufer.cpp(57) : error C2535: 'void Laeufer::gebuehrJugend(void)': Memberfunktion bereits definiert oder deklariert
    c:\dokumente und einstellungen\m\desktop\richtiger crosslauf\crosslauf\crosslauf\Laeufer.h(23): Siehe Deklaration von 'Laeufer::gebuehrJugend'
    .\Laeufer.cpp(62) : error C2535: 'void Laeufer::gebuehrErw(void)': Memberfunktion bereits definiert oder deklariert
    c:\dokumente und einstellungen\m\desktop\richtiger crosslauf\crosslauf\crosslauf\Laeufer.h(24): Siehe Deklaration von 'Laeufer::gebuehrErw'
    .\Laeufer.cpp(67) : error C2535: 'void Laeufer::ergebnisse(void)': Memberfunktion bereits definiert oder deklariert
    c:\dokumente und einstellungen\m\desktop\richtiger crosslauf\crosslauf\crosslauf\Laeufer.h(25): Siehe Deklaration von 'Laeufer::ergebnisse'
    .\Laeufer.cpp(71) : fatal error C1075: Dateiende erreicht, bevor das zugehörige Element für das linke Element Klammer "{" in "c:\dokumente und einstellungen\m\desktop\richtiger crosslauf\crosslauf\crosslauf\Laeufer.h(3)" gefunden wurde
    Code wird generiert...
    Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\M\Desktop\richtiger crosslauf\crosslauf\crosslauf\Debug\BuildLog.htm" gespeichert.
    crosslauf - 20 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========
    </fehler>

    Könnt ihr etwas damit anfangen?

    Schöne Grüße
    Martin



  • Also ich hab das jetzt hinbekommen, bis auf das:

    <fehler>

    ------ Erstellen gestartet: Projekt: crosslauf, Konfiguration: Debug Win32 ------
    Kompilieren...
    Main.cpp
    C:\Programme\Microsoft Visual Studio 8\VC\include\iostream(12) : error C2143: Syntaxfehler: Es fehlt ';' vor 'namespace'
    Laeufer.cpp
    C:\Programme\Microsoft Visual Studio 8\VC\include\iostream(12) : error C2143: Syntaxfehler: Es fehlt ';' vor 'namespace'
    Code wird generiert...
    Das Buildprotokoll wurde unter "file://c:\Dokumente und Einstellungen\M\Desktop\richtiger crosslauf\crosslauf\crosslauf\Debug\BuildLog.htm" gespeichert.
    crosslauf - 2 Fehler, 0 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

    </fehler>

    Das wird leider nachwievor angezeigt. Ich frag mich halt, normalerweile müsste doch der Fehler in einer header datei oder cpp datei sein und angezeigt werden. Aber in dem fall, wird das nicht angezeigt.

    Kennt ihr das phänomen, iostream(12)?

    Wäre supi wenn jemand helfen könnt



  • Martini123 schrieb:

    Kennt ihr das phänomen, iostream(12)?

    Es gibt kein "Phänomen iostream(12)".

    Vermutlich fehlt nur das Semikolon am Ende der Definition der Klasse Laeufer.

    Falls es das nicht ist, wäre es wohl hilfreich, wenn du Laeufer.h mal zeigen würdest.



  • mich wundert es nur, weil doch normalerweise fehler in Klassen doch angezeigt wird (Zeilennr. usw...)
    oder sagen wir es so, da ich noch C++ Neuling bin, ist mir dieser Fehler noch unbekannt

    Laeufer.h

    #include<string>
    
    class Laeufer{
    
    private:
    	int startnr;
    	std::string nachname;
    	std::string vorname;
    	int alter;
    	char geschlecht;
    	double zeit;
    	std::string vereinzug;
    	std::string vereinname;
    
    public:
    	Laeufer();
    	Laeufer(int startnr, std::string nachname, std::string vorname, int alter, char geschlecht, std::string vereinzug );
    	~Laeufer();
    	void anlegen(void);
    	void ausgeben(void);
    	int getstartnr();
    	int getAlter();
    	void gebuehrJugend(void);
    	void gebuehrErw(void);
    	void ergebnisse(void);
    }
    

    Ich muss noch sehr viel Lernen 😃



  • Oh mann, verzeiht mir bitte, böses Faul

    Am Ende von Laeufer.h fehler eine geschweife klammer, ist mir jetzt grad gekommen.
    Und jetzt versteh ich auch die Fehlermeldung.

    Aber könnt Ihr mir eins sagen, warum sagt der Compiler jetzt nicht Fehler in Zeile sowieso, sondern formuliert das so umständlich?
    (Ich hab Visual C++ 2005)



  • Hi,

    der Compiler liest soweit, wie es noch gültig sein könnte und meckert erst da, wo es auf keinen Fall mehr gültig sein kann.
    Er kann ja nicht wissen, dass Du genau da noch eine Klammer hättest schreiben wollen, sondern liest erstmal weiter, bis er eine passende "Klammer zu" findet ... oder eben bis ein Konstrukt kommt, das an dieser Stelle nicht erlaubt ist.

    In C++ ist eben sehr viel möglich und der Compiler kennt und berücksichtigt alle Möglichkeiten (auch die, an die Du gar nicht denkst). 😃

    Sprich: Er KANN gar nicht früher melden....

    Gruß,

    Simon2.



  • dankeschön


Anmelden zum Antworten