Конфликт имён в c++
#include <iostream>
int i = 1;
int main()
{
int i = 112;
std::cout<<i<<std::endl;
return 0;
}
Выводит на экран 112. Вопрос:Почему нету конфликта имён?
Ответы (1 шт):
Автор решения: Mikhailo
→ Ссылка
Потому что имя внутри блока скрывает имя снаружи.
Но это не беда - к нему все равно можно обратиться, указав глобальную область видимости:
std::cout<<i<<std::endl; // Локальная переменная
std::cout<<::i<<std::endl; // Глобальная переменная