Объявление переменной в более узкой области с тем же именем, что и во внешней области, всегда является функцией C ++. Иногда это может быть полезно.
Некоторые компиляторы предупреждают вас, но если они следуют стандарту C ++, они не должны выдавать ошибку.
Такие языки, как Java, запрещают это, но это может раздражать, особенно при перемещении блоков кода.