gpt4 book ai didi

c++ - 访问全局和命名空间变量

转载 作者:行者123 更新时间:2023-12-04 16:55:23 25 4
gpt4 key购买 nike

我正在尝试使用以下代码中的 using 指令访问变量 x:

#include <iostream>
using namespace std;
int x = 10;
namespace e {
int x = 5;
}
int main() {
using namespace e; // Because of this line compiler shows error
cout << x;
return 0;
}
通常,我们使用以下行访问 x 但我收到错误
我们也可以使用 使用 e::x;
但我的问题是为什么我们不能使用 使用命名空间 e;

最佳答案

在这个例子中,似乎 using namespace e;从命名空间中命名 e可在 main功能范围。然而,它不这样做。相反,它尝试从 main 注入(inject)名称(在 namespace e 的非限定查找期间)进入最近的封闭命名空间 mainnamespace e , 到全局命名空间。因此x变得模棱两可。

关于c++ - 访问全局和命名空间变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65719140/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com