【发布时间】:2015-01-08 02:30:31
【问题描述】:
我在 C++ 中使用嵌套命名空间并尝试访问内部命名空间内的外部命名空间的值,但它不起作用?谁能解释一下原因?
代码:
#include <iostream>
using namespace std;
namespace Test
{
int x = 20;
namespace InTest
{
int x = 30 + x;
}
}
int main()
{
using namespace Test::InTest;
cout << "X = " << x << endl;
return 0;
}
输出:
X = 30
对于上面的代码 sn-p,我期望 x 的值为 '50',但我得到的是 '30'。有人可以解释一下我在这里做错了什么吗?
操作系统:windows, 工具:代码块 编译器:g++ (mingw)
【问题讨论】:
-
在这种情况下,您应该将内行更改为
int x = 30 + Test::x;以明确指定范围。
标签: c++ namespaces scope