using namespace Exercise; 不会导致 ival 的 redeclaration,但是 using Exercise::ival; 反而会导致 redeclaration 是为什么;如下面的代码:#include <iostream>using namespace std;namespace Exercise
{ int ivar = 0; double dvar = 0; const int limit = 1000;
}// using namespace Exercise;using Exercise::ivar;int ivar = 0;
2 回答
收到一只叮咚
TA贡献1821条经验 获得超4个赞
命名空间就是解决命名冲突问题的,不过你那个using Exercise::ivar;
相当于declare了一遍Exercise
里的ivar
变量,就是说冲突的不是ivar
和using Exercise::ivar
,而是你又declareusing Exercise::ivar
以下代码就没问题了,因为没有再次declareusing Exercise::ivar
吃鸡游戏
TA贡献1829条经验 获得超7个赞
#include <iostream>using namespace std;namespace Exercise { int ivar = 0; double dvar = 0; const int limit = 1000; }// using namespace Exercise;int ivar = 0;int main(){ cout<<Exercise::ivar; cout<<ivar; return 0; }
- 2 回答
- 0 关注
- 772 浏览
添加回答
举报
0/150
提交
取消