c++中namespace的使用
1.初识namespace
相信很多小伙伴在初学c++时一定对using namespace std;这条语句充满了好奇,命名空间namespace到底是用来干嘛的呢?
其实很简单,就是用来区分不同作用域下相同名字的函数、类、变量,听起来有点抽象,举一个简单的例子。
在某个年级里,1班有个马云,3班有个马云,某次年级开会时,点名批评马云,怎么区分是哪个马云呢,就需要说清楚是哪个班的。如果是3班的,就需要用“3班::马云”来表示,这就是命名空间的简单使用。
在c++里就可以这样表示:
#include <iostream>
using namespace std;
namespace first{
int a = 10;
}
namespace second{
int a = 11;
}
int main()
{
cout << first::a << endl;
cout << second::a << endl;
return 0;
}
输出结果:
10
11
2. namespace的位置
使用using namespace,该语句后面使用的变量或函数名不需要再重复声明first::func()。
#include <iostream>
using namespace std;
namespace first{
void func(){
cout << "hello";
}
}
namespace second{
void func2(){
cout << " world!" << endl;
}
}
int main()
{
using namespace first;
func();
using namespace second;
func2();
return 0;
}
输出结果:hello world!
3. namespace的嵌套使用
#include <iostream>
using namespace std;
namespace first{
int a = 10;
namespace second{
int a = 11;
}
}
int main()
{
using namespace first;
cout << a << endl;
cout << second::a << endl;
return 0;
}
输出结果:
10
11
参考:
[1]: https://blog.csdn.net/qq_40416052/article/details/82528676?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.baidujs&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromMachineLearnPai2%7Edefault-4.baidujs
[2]: https://blog.csdn.net/yao_zhuang/article/details/1853625