2008-12-12 7 views
40

Ich habe eine Funktion namens:Variable oder ein Feld für nichtig erklärt

void initializeJSP(string Experiment) 

Und in meiner MyJSP.h Datei ich habe:

2: void initializeJSP(string Experiment); 

Und wenn ich kompilieren bekomme ich diesen Fehler:

MyJSP.h:2 error: variable or field initializeJSP declared void

Wo ist das Problem?

+1

Bei welcher Codezeile zeigt der Compiler, wenn dieser Fehler gemeldet wird? Welche Sprache verwendest du? Welcher andere Code ist um die fragliche Funktion? Weitere Informationen, bitte. –

Antwort

60

Es passiert zum Beispiel in diesem Fall hier:

void initializeJSP(unknownType Experiment); 

Versuchen Sie es mit std::string statt nur string (und auch die <string> Header). C++ - Standardbibliotheksklassen befinden sich im Namespace std::.

26

Dies ist eigentlich kein Problem mit der Funktion "void", sondern ein Problem mit den Funktionsparametern. Ich denke, es ist nur g ++ gibt eine nicht hilfreiche Fehlermeldung.

+4

Was ist das Problem mit den Funktionsparametern? (Ich weiß, dass die akzeptierte Antwort es erklärt, ich finde diese spezielle Antwort nicht besonders hilfreich). – Dukeling

-1

Die Sache ist die, dass, wenn Sie eine Funktion aufrufen, sollten Sie nicht die Art der Funktion schreiben, das heißt, Sie die funnction wie

initializeJSP (string Experiment) nennen sollte;

+1

Ihr Beispiel ist falsch, Sie können die Funktion nicht mit einem Typ als Parameter aufrufen, und die Frage bezieht sich auf etwas anderes. – Logman

+0

Sie haben Recht, etwas wie 'void func (int a);' ist kein Funktionsaufruf. Aber OP hatte ein anderes Thema. – HolyBlackCat

+0

Ich glaube nicht, dass das OP gemeint hat. –