Подтвердить что ты не робот

С++ доступ к глобальным переменным/объектам в пространстве имен с переменной/объектом с тем же именем

#include <iostream>
#include <string>
using namespace std;

string a;

namespace myNamespace
{
    string a;
    void output()
    {
        cout << a << endl;
    }
}

int main()
{
    a = "Namespaces, meh.";
    myNamespace::a = "Namespaces are great!";
    myNamespace::output();
}

В результате "Пространства имен велики!". Итак, есть ли способ получить доступ к глобальной строке внутри пространства имен myNamespace вместо локального?

4b9b3361

Ответ 1

Вот так:

void output()
{
    cout << ::a << endl;  //using :: = the global namespace 
}