[C++ Fehler] Unit1.cpp(53): E2141 Fehler in der Deklarationssyntax
-
Hi,
kann mir jemand sagen warum ich die o.g. Fehlermeldung beim Borland bekomme, obwohl logisch und theoretisch gesehen alles richtig aufgebaut ist. Der Fehler soll sich laut Borland in Zeile 12 befinden. (ES IST EIN CODESEGMENT!)
1:int TForm1::Ausrechnen()
2:{
3:
4: Edit1 -> Text = StrToInt (izahl1);
5: Edit2 -> Text = StrToInt (izahl2);
6:
7: izahl3 = izahl1 + izahl2;
8:
9: return izahl3;
10:}
11:
12:Edit3 -> Text = IntToStr (izahl3);
-
a) Die AnsiString-Klasse kann int's direkt entgegennehmen
Edit3 -> Text = izahl3;b)Wo wird in Ausrechnen izahl3 deklariert? Ist es eine globale Variable? Warum gibt die Funktion dann einen Wert zurück?
Vielleicht nochmal mit dem Thema Deklaration, Definition und Gültigkeitsbereiche befassen?
-
Hi,
ist das richtig, das Zeile 12 ausserhalb der Funktion steht?Steht sie damit ganz alleine da?
Dann ist die Fehlermeldung richtig, der Builder nimmt an, das da in Zeile 12 eine neue Funktion (oder Variable,...) kommt, und die hat dann natürlich einen Fehler in der Deklarationssyntax
-
Hallo
ich vermute das ganze soll eigentlich so aussehen
void TForm1::Ausrechnen() { Edit3 -> Text = StrToIntDef(Edit1->Text, 0) + StrToIntDef(Edit2->Text, 0); }Btw : Gib deinen Controls und Variablen sinnvolle Namen.
bis bald
akari
-
@akari:
vermute auch, das das so ungefähr aussehen sollte.
die Frage ist, ob der Syntaxfehler nur in dem Codesegment hier im Forum (also falsch wiedergegeben) wurde, oder ob es tatsächlich so im Sourcecode steht.
-
Hi,
danke erstmal für die Antworten.
@Akari: Ich gebe Dir bei Deiner Variante völlig Recht, aber was ich gerne wissen würde ist -> Was bedeutet die 0 bei Dir im Code und was ist der Unterschied zwischen StrToInt und StrToIntDef?
Danke im Voraus
CHakari schrieb:
Hallo
ich vermute das ganze soll eigentlich so aussehen
void TForm1::Ausrechnen() { Edit3 -> Text = StrToIntDef(Edit1->Text, 0) + StrToIntDef(Edit2->Text, 0); }Btw : Gib deinen Controls und Variablen sinnvolle Namen.
bis bald
akari
-
markier einfach StrToIntDef im Quellcode und drück F1, dann lies...
und allgemein: Hilfe benutzen
-
[Edit] zu langsam...
-
Danke für diese atemberaubende Antwort, die hätte meine Microsoft Büroklammer auch gewusst.
Trotzdem den Befehl kenne ich nicht, bzw. gibt es laut meinen recherchen nicht.Linnea schrieb:
markier einfach StrToIntDef im Quellcode und drück F1, dann lies...
und allgemein: Hilfe benutzen
-
Ich nimms zurück IntToStrDef gibt es nicht. Sorry.
-
StrToIntDef konvertiert den in S angegebenen String in einen Integer-Wert. S muss die Entsprechung eines ganzzahligen Wertes (dezimal oder hexadezimal) sein. Enthält S keine gültige Zahl, gibt StrToIntDef Default zurück.