C ++使用具有相同名称的变量/对象访问名称空间中的全局变量/对象

时间:2012-05-06 23:39:47

标签: c++ object namespaces global local

#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内部访问全局字符串而不仅仅是本地字符串?

1 个答案:

答案 0 :(得分:16)

像这样:

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