初学C++时,只要是程序都是用这个来打头。
#include<iostream>
using namespace std;
以前也不求甚解,知道随着对C++的深入了解,才有了自己独立的思考。
假设这样一种情况,当一个学校里有两个名叫之扰张的学生时,为了明确区分它们,我们在使用名字之外,可能要在他们名字前面加上班级。
比如.五年一班::之扰张和三年五班::之扰张。
同样的情况也出现在 C++ 应用程序中。例如,您可能会写一个名为 Judge() 的函数,在另一个可用的库中也存在一个相同的函数 Judge()。这样,编译器就无法判断您所使用的是哪一个 Judge() 函数。
因此,引入了命名空间这个概念,专门用于解决重名的问题,它可作为附加信息来区分不同库中相同名称的函数、类、变量等。
使用了命名空间即定义了上下文。本质上,命名空间就是定义了一个范围(班级)。
定义命名空间
命名空间的定义使用关键字 namespace,后跟命名空间的名称,如下所示:
namespace namespace_name {
// 代码声明
}
为了调用带有命名空间的函数或变量,需要在前面加上命名空间的名称,如下所示:
#include <iostream>
using namespace std;
// 第一个命名空间
namespace first_space{
void func(){
cout << "Inside first_space" << endl;
}
}
// 第二个命名空间
namespace second_space{
void func(){
cout << "Inside second_space" << endl;
}
}
int main ()
{
// 调用第一个命名空间中的函数
first_space::func();
// 调用第二个命名空间中的函数
second_space::func();
return 0;
}
结果如下
Inside first_space
Inside second_space