对于namespace 的使用一般只在比较大的项目开发中。。
能为各个不同程序员的代码共同实施提供极大的方便,因为不同程序员员可能使用了相同的变量,namespace便能够避免这种错误的出现。
当有相同的全局变量和局部变量时,若需直接访问全局变量只需使用 ::变量名
#include <iostream>
using namespace std;
int s=55;
int main()
{
int s=5;
std::cout<<::s<<endl;//55
cout<<s<<endl;//5
}
#include <iostream>
using namespace std;
int v=5;//强龙不压地头蛇
int main1()
{
int v=55;
cout << v << endl;//如果有相同全局和局部变量,使用的话还是会调用局部 输出55
return 0;
}
int main2()
{
//需要访问全局的话
int *p=&v;//全局
int v=55;//局部
cout<<*p<<endl<<v;//输出5 55
}
</pre><pre code_snippet_id="1970891" snippet_file_name="blog_20161107_10_4204878" name="code" class="cpp">
int main3()
{
int v=55;
cout<<v<<endl;
cout<<::v<<endl;//::作用域运算符,全局无命名空间 直接输出全局变量5
return 0;
}
</pre><pre code_snippet_id="1970891" snippet_file_name="blog_20161107_10_4204878" name="code" class="cpp">
</pre><pre code_snippet_id="1970891" snippet_file_name="blog_20161107_8_3921471" name="code" class="cpp"><pre name="code" class="cpp">//关键字namespace 自定义函数名Space
namespace Space{
int x;
int y;
}
namespace Other {
int x;
int y;
}
int main4()
{
Space::x=200;
cout<<Space::x<<endl;//较方便的表达方式 输出200
using Space::y;//未初始化的写法
y=20;
cout<<y<<endl;//输出20
}
<pre name="code" class="cpp">int main()
{
{
using namespace Space;
x=10;y=20;
cout<<x<<" "<<y<<endl; //10 20
}
//这里的花括号是为了防止上面的x,y和下面的冲突
{
using namespace Other;
x=10;y=20;
cout<<x<<" "<<y<<endl; //10 20
}
// int x;int y;
// cout<<x<<y<<endl;
}