Так что, если я инициализировать переменную того же типа и имени в основной функции компилятор будет жаловаться декларации повторно, например:Почему компилятор C++ 11 не жалуется, когда я инициализирую локальную переменную с тем же именем несколько раз в пределах одной и той же области?
for (int i = 0; i < 5; i++)
{
int a{5};
int a{5}; // error int a previously declared here
}
Но нет никаких ошибок, если я компилирую вместо этого:
for (int i = 0; i < 5; i++)
{
int a{5};
}
Насколько я понимаю, это похоже на то, что я инициализировал «int a» несколько раз в пределах той же области видимости, что, очевидно, вызовет ошибку. Если кто-то может объяснить, что происходит на самом деле, мы будем очень благодарны! Благодаря!
Обратите внимание, что это не относится к компилятору g ++. Он является частью спецификации языка C++. – juanchopanza
Вы спрашиваете, почему область тела цикла не засчитывается несколько раз? –
Вы инициализируете 'a' каждый раз, когда цикл выполняется. –