Gültigkeitsbereich von Variablen in for Schleifen



  • > Soweit ich weiß, sind variablen die im Kopf der For-Schleife deklariert werden auch ausserhalb der klammern gültig

    das ist aber nicht Standardkonform! (ich liebe dieses Wort 😉

    das war früher mal so - aber ANSI/ISO/IEC oder wie auch immer Standard ändert sich von Zeit zu Zeit



  • du bist gar kein Camper sonder ein Rusher 😉



  • 5er1al schrieb:

    Soweit ich weiß, sind variablen die im Kopf der For-Schleife deklariert werden auch ausserhalb der klammern gültig

    Damit liegst du falsch.

    Zitat aus einen Tutorial:
    [Zitat gelöscht, da blödsinn]

    Der C++ Standard begrenzt den Gültigkeitsbereich von Variablen die im init-Statement einer for-Schleife deklariert werden auf die Schleife selbst und nicht darüber hinaus. Nachzulesen unter 6.5.3 The for statement


  • Mod

    Vertexwahn schrieb:

    du bist gar kein Camper sonder ein Rusher 😉

    psssst! 🙂



  • Aber wieso wird das dann in einem Tutorial einer Uni ausgiebig geschrieben...?



  • hast aber recht 🙂



  • Braunstein hat recht, für Visual C++ ist das einfach üblich,
    hab das auch in "C++ in 21 Tagen" (Jesse Liberty) gelesen.

    MfG RoaN;



  • beim dev-C++ mit g++ compiler schreibt er folgendes:

    main.cpp: In function `int main(int, char**)':
    
    main.cpp:15: error: name lookup of `a' changed for new ISO `for' scoping
    main.cpp:8: error:   using obsolete binding at `a'
    

    finds arg das visual studio net 2003 da keinen error oder waring schreibt, ja man kann nur hoffen das es beim visual studio 2005 besser wird;-)

    cu



  • roan312 schrieb:

    Braunstein hat recht, für Visual C++ ist das einfach üblich

    Was aber völlig irrelevant ist. In diesem Forum geht es nicht um Visual C++ (bzw den entsprechenden Compiler), sondern um (ISO) C++. Und genau nach dieser C++ Standard Konformität hat Vertexwahn ja gefragt.

    cplusplus_ schrieb:

    finds arg das visual studio net 2003 da keinen error oder waring schreibt

    Hast du dir die Beiträge überhaupt durchgelesen? Natürlich meckert der Compiler, du musst nur die Flags entsprechend einstellen.



  • > finds arg das visual studio net 2003 da keinen error oder waring schreibt, ja man kann nur hoffen das es beim visual studio 2005 besser wird;-)

    ...? sieh dir doch die Antworten an

    1. Man kanns doch ganz einfach umstellen
    2. Es wurde für die Aufwärtkompatibilität der MFC gemacht


Anmelden zum Antworten