命名空间的作用
关键字:namespace
作用:对标识符的名称进行本地化,以避免命名冲突
命名空间的定义
//常规定义方式
namespace gxd
{
//命名空间中可以定义变量、函数、结构体(类)
//......
}
要点:
1.命名空间中可以定义变量、函数、结构体(类)
2.命名空间可以嵌套
3.同一个工程中允许存在多个名称相同的命名空间,编译器最后会合成为一个命名空间
4.一个命名空间定义了一个新的作用域
命名空间的使用
命名空间名称+作用域限定符
int main()
{
printf("%d\n",gxd::length);
return 0;
}
使用using引入命名空间中的某个成员
using gxd::weight;
int main()
{
printf("%d\n",gxd::length);
printf("%d\n",weight);
return 0;
}
using namespace 命名空间名称
using namespace gxd;
int main()
{
printf("%d\n",length);
printf("%d\n",weight);
return 0;
}
总结
日常练习直接使用using namespace std;即可,很方便
但是在项目开发中推荐使用其他两种
补充内容
std是C++标准库的命名空间名,C++将标准库的定义(实现)都放到了这个命名空间中;而声明放在了<iostream>头文件中
cout和cin分别是ostream和istream类型的对象,使用cout和cin必须包含<iostream>头文件,并且需要按照命名空间的使用方式使用std
C++的输入输出更加方便,可以自动识别变量类型,不需要像C语言的printf和scanf一样需要手动控制格式
旧编译器支持<iostream.h>格式,后续编译器已经不再支持,推荐使用<iostream>+std格式