【问题标题】:Accessing one namespace data member into another将一个命名空间数据成员访问到另一个
【发布时间】:2018-01-19 06:09:14
【问题描述】:

如何从 n1 命名空间访问 y(位于命名空间 n2 内): 测试代码如下:

#include<iostream>
using namespace std;

namespace n1
{
    int x =  20;
    int m = ::n2::y;
    void printx()
    {
        cout << "n1::x is " << x << endl;
        cout << "n2::y is " << m << endl;
    }
}

namespace n2
{
    int y = 10;
}

int main()
{
    cout << n1::x << endl;
    n1::printx();
    cout << n2::y << endl;

    return 0;
}

我收到以下错误: test.cpp:7:15:错误:'::n2' 尚未声明 int m = ::n2::y;

【问题讨论】:

    标签: c++ namespaces


    【解决方案1】:

    只需更改顺序,以便 n2 在 n1 内可解析:

    #include<iostream>
    using namespace std;
    
    
    namespace n2
    {
        int y = 10;
    }
    
    namespace n1
    {
        int x =  20;
        int m = n2::y;
        void printx()
        {
            cout << "n1::x is " << x << endl;
            cout << "n2::y is " << m << endl;
        }
    }
    
    
    int main()
    {
        cout << n1::x << endl;
        n1::printx();
        cout << n2::y << endl;
    
        return 0;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-06
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多