Arraydefinition braucht const int im Konstruktor
-
Hallo zusammen,
wie gestalte ich eine Arraydeklaration statisch, wenn der Konstruktor nach einem konstanten Ausdruck verlangt?
bei folgender Deklaration:
int z = b + 10; struct safe K[z];bekomme ich mit Visual C++ immer folgenden Fehler:
error C2057: Konstanter Ausdruck erwartet
Kann ich eine Arraydeklaration dann überhaupt dynamisch gestalten - const int`s kann man ja nicht mehr ändern?
Oder muss die Breite eines Arrays immer festgelegt sein?
Danke für euere Hilfe.
-
entweder Du erstellst das Array auf dem Heap (per new)
oder Du verwendest vector (was wesentlich angenehmer ist)
-
was meinst du mit vektor - kennen ich nicht - bin noch neu

-
Die Länge eines Arrays muss immer zur Compilezeit feststehen, wenn du es nicht dynamisch allokierst. Das sollte aber auch in jedem C++-Tutorial und Anfängerbuch so drinstehen.
Alternativen sind das dynamische allozieren des Arrays, oder am Besten der Gebrauch eines std::vector<>sbtw: ich nehme an dass du irgendwo ein struct names save definiert hast, allerdings ist beim Ertsellen des Arrays das Schlüsselwort struct nichtmehr nötig.
Alles in allem siehts mir danach aus, dass du C bereits kennst und auf der Basis versuchst C++ zu lernen. Lass dir dazu gesagt sein: auch wenn C aus Kompatibilitätsgründen noch Bestandteil von C++ ist, sind beides zwei verschiedene Programmiersprachen. Wenn du wirklich C++ lernen willst, solltest du C erstmal ganz vergessen udn bei 0 anfangen.
-
Hej - Danke für euere Hilfe!!
jaja das C schleicht sich immer noch ein...bin dran das zu verbessern
