[gelöst] Redaclaration of ...

Du bist neu in der Welt von C++? Dann schau hier herein!
Antworten
gelignite
Beiträge: 37
Registriert: 6. Dezember 2007 21:23
Kontaktdaten:

[gelöst] Redaclaration of ...

Beitrag von gelignite »

Hallo,

ich habe etwas Gefallen an dieser Ecke des Forums gefunden. :wink:

Aktuell beschäftigt mich dieser Gedanke:

Code: Alles auswählen

int main( void )
{
    int a;
    int a;          // Hier gibts eine Meldung von wegen "Redeclaration of a"

    for( int turn = 0; turn < 2; turn++ )     // Wir drehen 2 Runden
        int b;         // Keine Meldung hier
}
Da die Schleife hier mehrfach ausgeführt wird, sollte b doch ebenfalls redeklariert werden. Wieso gibt das keine Meldung?

Gruß,
gelignite
Zuletzt geändert von gelignite am 18. September 2008 15:59, insgesamt 1-mal geändert.
{brigens ist ein Kezboard/Treiber v;llig [berfl[ssig!
Ginsengelf
Beiträge: 79
Registriert: 2. Mai 2007 10:21

Beitrag von Ginsengelf »

Moin, b ist nur im Bereich eines Durchlaufs der Schleife definiert. Sobald die Schleife am Ende ankommt, verliert die Deklaration von b seine Gültigkeit. Wenn die Schleife dann oben weitermacht, kann b wieder neu deklariert werden.

Ginsengelf
gelignite
Beiträge: 37
Registriert: 6. Dezember 2007 21:23
Kontaktdaten:

Beitrag von gelignite »

Ah, okay. Klingt plausibel (und nach eingeschränktem "Lebensbereich"). Es ist demnach analog zu Folgendem:

Code: Alles auswählen

int a;  // "global"

if( true )
    int a; // auf den if-Block beschränkt
Vielen Dank.

Gruß,
gelignite
{brigens ist ein Kezboard/Treiber v;llig [berfl[ssig!
Antworten