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!
Entfernen Sie in der Definition in der Datei .cpp
das Schlüsselwort static
:
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).
Tags und Links class c++ visual-studio-2010 static