Schleifenvariable bei for



  • Seite 832
    8.3.4 Schleifenvariable von for

    Ist nur ein kurzer Absatz.



  • for(int i = 0; i < 10; i++) {
        // ...
      }
      i = 42; // hier kommt nach dem Standard ein Fehler
    

    Die Variable ist nur innerhalb der geschweiften Klammern gültig. Das will er dir sagen. Willst du die Schleifenvariable nach der Schleife weiter benutzen musst du sie außerhalb deklarieren.



  • DerRatlose schrieb:

    ...C++ von A bis Z...

    ... gilt auch nicht gerade als der Höhepunkt der Schöpferischen Leistung 😉

    cu André



  • Bei Visual Studio war das eine Weile so, das Variablen weiterhin gültig waren. Dies ruinierte so ziemlich die Portierbarkeit, wobei man das aber, glaube ich, auch deaktivieren konnte.



  • Fellhuhn schrieb:

    Bei Visual Studio war das eine Weile so, das Variablen weiterhin gültig waren. Dies ruinierte so ziemlich die Portierbarkeit, wobei man das aber, glaube ich, auch deaktivieren konnte.

    Unter VC6 kenne ich das Verhalten, einen Schalter dafür aber nicht. Führte dazu, das ich im VC6 for-Schleifen mittels einer weiteren Klammerung in ein separates Scope gesetzt habe...

    cu André



  • Gut, dann wäre das geklärt. Vielen Dank.

    @asc: Bis jetzt hatte ich mit dem Buch noch keine all zu großen Probleme. Auch wenn ich in einem Quelltext schon einen Fehler entdeckt habe. Welches Buch würdest du denn empfehlen?

    MfG
    DerRatlose

    EDIT: OK, jetzt hätte ich es glaube ich auch so verstanden. Habe mir den Quelltext gerade noch mal angesehen, der als Beispiel dabei stand. Da habe ich mich verlesen und nicht gesehen, dass die Variable nach verlassen der for-Schleife weiterhin genutzt wurde. 🙄 Aber trotzdem vielen Dank.



  • Fellhuhn schrieb:

    Bei Visual Studio war das eine Weile so, das Variablen weiterhin gültig waren. Dies ruinierte so ziemlich die Portierbarkeit, wobei man das aber, glaube ich, auch deaktivieren konnte.

    Umgekehrt:
    Man kann bei neueren Studios das Verhalten mittels Switch wieder anknippsen, damit alter, Non-Standard Code weiterhin kompilierbar bleibt.



  • DerRatlose schrieb:

    @asc: Bis jetzt hatte ich mit dem Buch noch keine all zu großen Probleme. Auch wenn ich in einem Quelltext schon einen Fehler entdeckt habe. Welches Buch würdest du denn empfehlen?

    Die typischen Empfehlungen sind der C++ Primer und Thinking in C++ (letzteres gibt es kostenlos als Zweiteiler im Internet).



  • Gibt es denn wirkliche Nachteile in C++ von A bis Z? Dann könnte ich die beim Lesen beachten.

    MfG
    DerRatlose



  • DerRatlose schrieb:

    Gibt es denn wirkliche Nachteile in C++ von A bis Z? Dann könnte ich die beim Lesen beachten.

    Ich kenne nur Kommentare zu dem Buch, habe selbst aber das Buch nicht gelesen. Es soll weder eine sinnvolle Reihenfolge einhalten, und unnötig auf C eingehen. Zudem deutet die genannte Empfehlung auch nicht unbedingt auf die Qualität.

    Grundsätzlich grobe Indizen für ein schlechtes C++ Buch:
    a) Verwendung von char[]/char* vor std::string
    b) Exzessive Verwendung von Arrays statt gleich auf die C++ Container hinzuweisen
    => Um hier gleich Einwürfe vorzubeugen: Es geht nicht darum die ganzen Algorithmen etc. gleich zu zeigen, sondern um die Grundfunktionen des std::vector oder alternativ std::tr1::array.
    c) Intensive Verwendung von Zeigerarithmetik bereits am Anfang des Buches
    d) Verwendung von C-Bibliotheken zu denen es C++ Alternativen gibt

    Es gibt noch mehr Punkte aber sollte einer der Punkte zutreffen sollte man zumindestens etwas vorsichtig werden...



  • Da kann ich dir größtenteils zustimmen. Einem totalem Neuling würde ich es gar nicht erst in die Hand geben.
    Aber sonst geht es eigentlich. Und von der Übersicht her kann man es als Nachschlagewerk verwenden.

    Aber Danke für deine Tipps, werde sie beim lesen beachten. 👍


Anmelden zum Antworten