首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么即使没有局部变量,全局变量也会出现歧义错误?

为什么即使没有局部变量,全局变量也会出现歧义错误?
EN

Stack Overflow用户
提问于 2017-08-01 12:51:45
回答 2查看 70关注 0票数 0

代码:

代码语言:javascript
运行
复制
#include<iostream>
using namespace std;
int move=0;
void main()
{
 ++move;
}

##Error:“移动”是模糊的

我该如何克服这一切?

EN

回答 2

Stack Overflow用户

发布于 2017-08-01 13:42:59

停止键入using namespace std;

之所以会发生这种情况,是因为您将大量符号从namespace std注入全局命名空间,然后碰巧使用了其中一个符号。std很大,任何标题都可以包含其他任何内容。只是不要using namespace std;

如果必须的话,在函数中本地执行,或者在函数的本地显式地执行更好的using std::what_you_need;

票数 1
EN

Stack Overflow用户

发布于 2017-08-01 13:58:18

只需尝试在变量名称之前使用::,表示来自全局命名空间。

正确代码:

代码语言:javascript
运行
复制
#include<iostream>
using namespace std;

int move=0;

int main()
{
    ++::move;
    return 0;
}

代码语言:javascript
运行
复制
#include<iostream>
using namespace std;

int move=0;

int main()
{
    using ::move;

    ++move;
    return 0;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45438378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档