C/C++_log2000_namespace再探
2017-03-14 17:50
169 查看
#include<iostream> using namespace std; int i; //std 中的全局变量 namespace a{ int i; //a 中的全局变量 } int main(){ i=5; a::i=55; { using namespace a; int j; j=7; cout<<"i="<<i<<endl;//如果不做设定,直接输出i会报错,因为不知道是输出全局变量i还是namespace a中的i cout<<"j="<<j<<endl; } cout<<"i="<<i<<endl; return 0; }
错误信息
||=== Build file: "no target" in "no project" (compiler: unknown) ===| ~.cpp||In function 'int main()':| ~.cpp|14|error: reference to 'i' is ambiguous| ~.cpp|3|note: candidates are: int i| ~.cpp|5|note: int a::i| ||== 4000 = Build failed: 1 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|
更改一下
#include<iostream> using namespace std; int i; //std 中的全局变量 namespace a{ int i; //a 中的全局变量 } int main(){ i=5; a::i=6; { using namespace a; int j; j=7; cout<<"i="<<a::i<<endl; cout<<"j="<<j<<endl; } cout<<"i="<<i<<endl; return 0; }
输出正常
i=6 j=7 i=5
再变一下
#include<iostream> using namespace std; int i; //std 中的全局变量 namespace a{ int j; //a 中的全局变量 } int main(){ i=5; a::j=6; { using namespace a; int i; i=7; cout<<"i="<<i<<endl; cout<<"j="<<j<<endl; } cout<<"i="<<i<<endl; return 0; }
输出
i=7 j=6 i=5
相关文章推荐
- C/C++_log2000_namespace使用辨析
- C++中的namespace
- 关于C++声明iterator时出现找不到namespace的问题
- C++ using namespace 详解
- C++ 命名空间namespace
- c++ namespace
- C++ 匿名namespace的作用以及它与static的区别
- c++的命名空间namespace的作用
- C++ using namespace std
- C++之'using namespace std'
- C++-namespace(命名空间)
- C++ using namespace std 详解
- [C++ rudiment]名字空间 namespace
- C++之Namespace使用源代码
- C++ using namespace std 详解
- C++ 命名空间namespace
- C++中的namespace
- C++namespace的使用
- C++ using namespace std 详解
- C++ Gossip: 名稱空間(Namespace)