Конфликт имён в 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;  // Глобальная переменная
→ Ссылка