Frage zur Vereinbarung von Konstanten
-
Hallo liebe Community,
ich habe folgenden Konstanten vereinbart//--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" const Vmax = 240, Rmax = 6, CGM = 587.8775383; TForm1 *Form1; //---------------------------------------------------------------------------
Nun möchte ich nochmals als die Formel die Rechnung darstellen:
CGM = Vmax * pow(Rmax, 0.5);
Sieht vielleicht schwachsinnig aus, weil die Ergebnisse ja schon gegeben sind, aber die Formel wird für später noch gebraucht. Meine Frage ist, warum man es so in C++ nicht schreiben kann. Es kommt der Fehler "E2024 const-Objekt kann nicht modifiziert werden" kommt. Schreibe ich anstatt "=" "==" funktionert alles, aber ich möchte das Ergebnis doch CGM zuweisen?Vielen Dank für die Hilfe
lg, freakC++
-
Du kannst den Wert einer Konstante nicht so ändern (=).
-
aber eigentlich wird er ja nicht geändert. Er wird ja nur nochmal neu berechnet!?
-
Das ist egal.
Eine Konstante darf nie als Lvalue (also auf der linken Seite) einer Zuweisung stehen.
-
Hallo
const ist konstant. Eine Konstante kann nach der Initialisierung nicht mehr verändern werden, sonst wäre sie keine Konstante.
Ja es gibt den const_cast, aber ich bezweifle stark das das eine saubere Lösung wäre, weder in technischer noch in konzeptioneller Ebene.
bis bald
akari
-
Alles klar!!
Habs verstanden! Vielen Dank für die schnelle Hilfe!Vielen Dank
lg, freakC++