namespace(命名空间)
作用
1.作用
跟C语言中static作用类似,防止在开发大型应用程序,名字起冲突
大型应用程序开发的时候,不同的.cpp文件可以是不同的程序员写的,有可能会出现全局变量同名导致的冲突
C++采用了如下解决方案:
方案一: 跟C语言一样,用static限制全局变量的作用域
方案二: 使用命名空间
语法规则
2.语法规则
namespace 命名空间的名字
{
需要包含的内容(变量,函数,类)
};
使用命名空间
3.使用命名空间
写法一:
命名空间的名字::变量名;
命名空间的名字::函数名;
命名空间的名字::类名;
写法二:
using namespace 命名空间的名字; //声明我要使用的命名空间
使用的时候就可以不必写命名空间的名字::
认识std
4.认识std
using namespace std; //声明我要使用系统定义好的命名空间std
#include <iostream> 头文件中定义命名空间
namespace std
{
cin;
cout;
endl;
}
在main.cpp文件中定一个命名空间
namespace T
{
int a=10086;
}
在另一个文件中pf.cpp声明命名空间,并且说明a是外部变量
namespace T
{
extern int a;//声明命名空间中的a是在外部定义的
}
简单练习
在main.cpp中定义一个命名空间,里面有func()函数,在另一个文件中实现该空间的func函数,并输出一句话。
在pf.cpp实现func函数
#include <iostream>
using namespace std;
//定义命名空间
namespace T
{
void func()
{
cout << "Hello World!" << endl;
}
}
在主函数通过namespace调用另一个文件的func()
#include <iostream>
using namespace std;
//定义命名空间
namespace T
{
extern void func(); //说明这个函数在外部定义的
}
int main()
{
//使用命名空间
T::func();
return 0;
}
实现效果: