Statische Funktion: Eine Speicherklasse darf hier nicht angegeben werden

8

Ich habe auf diese Weise eine Funktion als statisch in meiner Klasse definiert (Code-Schnipsel)

%Vor%

und in der CPP-Datei als

%Vor%

und ich erhalte einen Fehler (VS C ++ 2010) in der CPP-Datei mit der Aussage "Eine Speicherklasse darf hier nicht angegeben werden" und ich kann nicht herausfinden, was ich falsch mache.

ps. Ich habe bereits gelesen dieses , das wie ein Duplikat aussieht, aber ich weiß nicht - wie er es tut -, dass ich recht habe und der Compiler gerade knifflig ist. Jede Hilfe ist willkommen, ich kann dazu keine Informationen finden!

    
sccs 31.03.2013, 03:08
quelle

1 Antwort

19

Entfernen Sie in der Definition in der Datei .cpp das Schlüsselwort static :

%Vor%

Solange Sie das Schlüsselwort static in der Header-Datei haben, weiß der Compiler, dass es sich um eine statische Klassenmethode handelt. Daher sollten Sie dies in der Definition in der Quelldatei nicht tun und können.

In C ++ 03 sind die Speicherklassenbezeichner die Schlüsselwörter auto , register , static , extern und mutable , die dem Compiler mitteilen, wie Daten werden gespeichert. Wenn Sie eine Fehlermeldung erhalten, die sich auf Speicherklassenbezeichner bezieht, können Sie sicher sein, dass sie sich auf eines dieser Schlüsselwörter bezieht.

In C ++ 11 hat das Schlüsselwort auto eine andere Bedeutung (es ist nicht länger ein Speicherklassenspezifizierer).

    
Adam Rosenfield 31.03.2013, 03:10
quelle