Compiler-Error bei statischer Methode



  • Hi,

    ich fange gerade erst mit C++ an und learne mich by doing so langsam vorwärts.
    Die Suche, der Google und einige Tuts gaben leider nichts her.

    Warum bekomme ich hiermit

    class staticKlasse
    {
    	public:
    		static void print();
    };
    
    static void staticKlasse::print()
    {  // <---------------------------------- Zeile 13
    	cout<<"Testausgabe" <<endl;
    }
    

    folgende Fehlermeldung beim Compilieren:

    Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
    test.cpp:
    Error E2092 staticKlasse.cpp 13: Storage class 'static' is not allowed here

    und hierbei

    class staticKlasse
    {
    	public:
    		static void print() { cout<<"Testausgabe" <<endl; };
    };
    

    nicht?

    Schonmal vielen Dank für die Antwort.

    Gruß Eny



  • *edit*



  • Bei der Definition brauchst du static nicht anzugeben.



  • Hi Strogij,

    herzlichen Dank für die schnelle Antwort. Jetzt wird einwandfrei compiliert und die Ausführung entspricht auch meiner Erwartung.

    Also nicht nur daß ich bei der Definition das 'static' nicht brauche, sondern ich darf es da nicht hinsetzen (zumindest beim Borland Compiler).

    Gruß Eny



  • Stimmt. Als Begründung meine ich mal gelesen zu haben, dass das Kommitee keywords nur noch da erlauben will, wo sie absolut nötig sind, damit man sie da, wo sie nicht nötig sind, noch einmal für anderes Zeug recyclen kann.
    Und Learning by Doing in C++...naja, viel Glück 🙄



  • Hi,

    operator void schrieb:

    ... Und Learning by Doing in C++...naja, viel Glück 🙄

    heißt für mich auch Beispielcode zu schreiben, ihn durch einen Debugger laufen zu lassen und mir Zeile für Zeile anzugucken, ob das jeweilige Ergebnis auch meinen Erwartungen entspricht. Das mag zwar in den Augen einiger C++ - Coder viel zu aufwendig sein, aber so kann ich das jeweils Gelesene nachvollziehen und verstehen.

    Gruß Eny



  • Klar - nur durch's Lesen kommt man nicht weit. Aber dass man static bei der Definition weglässt, müsste eigentlich in einem guten Buch erklärt stehen. Falls der OP die Zeile nur übersehen hat oder ich mich sonstwie verschätzt habe, war der Kommentar natürlich noch überflüssiger 🙂


Anmelden zum Antworten