Identifier "..." cannot have a type qualifier
-
Hallo.
Bei vielen meiner Programme taucht irgendwann beim compilen die im Title gennante Fehlermeldung auf, aber ich weiß nicht warum und weiß auch nicht wie ich denn fehler beheben kann.
mfg
Jakel
-
RTFM!
C++Builder 6 Dokumentation schrieb:
E2089 Bezeichner ‘bezeichner’ darf keinen Typqualifizierer besitzen Compiler-Fehler
Der C++ Qualifizierer Klasse::Bezeichner ist hier nicht erlaubt.Ein Qualifizierer ist nicht erlaubt bei:
- Typedef-Namen.
- Funktionsdeklarationen (außer Definitionen auf Dateiebene).
- Vor lokalen Variablen oder Funktionsparametern.
- Bei Klassenelementen, außer als Qualifizierer der eigenen Klasse, was redundant, aber zulässig ist.
Zudem sollte der Compiler eigentlich die Fehlerzeile anzeigen. Wenn du den dort auftretenden Code auf die in der Dokumentation aufgeführten Punkte untersuchst (und im Zweifelsfall samt aller zum Verständnis nötiger Definitionen hier postest), solltest du den Fehler eigentlich finden können.
-
audacia schrieb:
Zudem sollte der Compiler eigentlich die Fehlerzeile anzeigen. Wenn du den dort auftretenden Code auf die in der Dokumentation aufgeführten Punkte untersuchst (und im Zweifelsfall samt aller zum Verständnis nötiger Definitionen hier postest), solltest du den Fehler eigentlich finden können.
Der Compiler zeigt die Zeile direkt bei { an. Was soll da falsch sein?
-
Hallo
Das heißt nicht mehr als das dem Compiler bei der Klammer auffällt das etwas nicht stimmt. Das eigentliche Problem liegt vorher. Das kann sogar in einer vorher eingebunden Headerdatei sein.
bis bald
akari
-
also das was direkt davor steht kann ich ja mal posten(nich über die noobige pregrammierung wundern xD):
void __fastcall TForm1::tpl1feuerball1Timer(TObject *Sender) { if (vpl1feuerball1 == false) { vpl1feuerball1x = vpl1feldx; vpl1feuerball1y = vpl1feldy; vpl1feuerball1dir = vpl1dir; vpl1feuerball1 = true; ipl1feuerball1->Show(); ipl1feuerball1->Picture->LoadFromFile(spfad+"\\data\\Zfeuerball"+sdirs[vpl1feuerball1dir]+".bmp"); } if (vpl1feuerball1dir == 1) { vpl1feuerball1y--; if (spielfeld[vpl1feuerball1x][vpl1feuerball1y] == "LW" || vpl1feuerball1y < 0) vpl1feuerball1 = false; } if (vpl1feuerball1dir == 2) { vpl1feuerball1x++; if (spielfeld[vpl1feuerball1x][vpl1feuerball1y] == "LW" || vpl1feuerball1x*25+25 > ispielfeld->Width) vpl1feuerball1 = false; } if (vpl1feuerball1dir == 3) { vpl1feuerball1y++; if (spielfeld[vpl1feuerball1x][vpl1feuerball1y] == "LW" || vpl1feuerball1y*25+25 > ispielfeld->Height) vpl1feuerball1 = false; } if (vpl1feuerball1dir == 4) { vpl1feuerball1x--; if (spielfeld[max(vpl1feuerball1x,0)][vpl1feuerball1y] == "LW" || vpl1feuerball1x < 0) vpl1feuerball1 = false; } if (vpl1feuerball1x == vpl1feldx && vpl1feuerball1y == vpl1feldy) { if (bpl1schild) { vpl1feuerball1dir = (vpl1feuerball1dir+2)%4; } else { vpl1feuerball1 = false; pl1hurt (5); } if (vpl1feuerball1x == vpl2feldx && vpl1feuerball1y == vpl2feldy) { if (bpl2schild) { vpl1feuerball1dir = (vpl1feuerball1dir+2)%4; } else { vpl1feuerball1 = false; pl2hurt(5); } } ipl1feuerball1->Picture->LoadFromFile(spfad+"\\data\\Zfeuerball"+sdirs[vpl1feuerball1dir]+".bmp"); if (vpl1feuerball1 == true) { ipl1feuerball1->Top = vpl1feuerball1y*25; ipl1feuerball1->Left = vpl1feuerball1x*25+150; } else { tpl1feuerball1->Enabled = false; ipl1feuerball1->Hide(); } }
-
In der Regel tritt der Fehler auf, wenn irgendwo weiter oben eine geschweifte Klammer falsch oder nicht gesetzt wurde.
Steht da wirklich nur ... in der Fehlermeldung?
-
Ich sehe hier in Zeile 47 eine fehlende schließende Klammer.
-
Hi Jakel,
wie wäre es, wenn du dein code etwas übersichtlicher gestaltes:
also vpl1feuerball1dir == 1 bis 4 in einem select case packst
ansonsten schau mal, ob du oberhalb der fehlermeldung etwas falsch deklariert hast, welches einen allgemeinen namen benutzt und nicht deine eigene funktion
gruß
-
Jansen schrieb:
Steht da wirklich nur ... in der Fehlermeldung?
Nein, wörtlich steht da: "Identifier 'tpl2feuerball1Timer' cannot have a type qualifier."
Ich habe nur "..." geschrieben weil mir das jetzt schon bei mehreren Programmen passiert ist.09052007 schrieb:
Hi Jakel,
wie wäre es, wenn du dein code etwas übersichtlicher gestaltes:
also vpl1feuerball1dir == 1 bis 4 in einem select case packstIch habe vor, in den einzelnen if's noch weitere individuelle Bedingungen hinzuzufügen, daher wäre ein switch unpraktisch.
Braunstein schrieb:
Ich sehe hier in Zeile 47 eine fehlende schließende Klammer.
Ah ja, da ist der Fehler! Hab ich gar nicht bemerkt^^ Danke!