首页 技术 正文
技术 2022年11月19日
0 收藏 466 点赞 3,623 浏览 976 个字

​命名空间是一块程序员可以自己命名的内存区域,用于解决同名冲突的问题。

​举例来说,某班及内有三个张三,分别坐在班级的第一排、第三排和最后一排。当老师喊张三时,三个张三都站起来应答,这就是同名冲突。如果老师说”第一排的张三“或者”第三排的张三“,就会有且仅有一个张三站起来应答,这里的”第一排“或者”第三排“就是所谓的命名空间

​C++中命名空间的作用类似于操作系统中的目录和文件的关系:由于文件很多,不便管理,而且容易重名,于是人们设立若干子目录,把文件分别放到不同的子目录中,同名的文件放入不同的子目录中就不会产生冲突。

​使用举例如下:

#include<iostream>namespace us1
{
int a;
}namespace us2
{
int a;
}using namespace us1;int main()
{
us1::a = 5;
us2::a = 2;
std::cout <<"us1::a = " << us1::a << "\n";
std::cout <<"us2::a = " << us2::a << "\n";
std::cout << a << "\n";
}

​输出如下:

us1::a = 5
us2::a = 2
5

​上述代码中定义了两个命名空间,其中都含有变量 a ,当在 main 函数中使用变量 a 时,要指明使用的是哪个命名空间内的变量 a ,就如使用某一文件需要其文件路径一样,us1::aus2::a 起的就是这样的作用。

​另外,由于语句 using namespace us1; 的作用,使 us1 成为本程序的默认命名空间,故程序中的 a 默认为 us1::a

​为了解决 C++ 标准库中的标识符与程序中的全局标识符之间以及不同库中的标识符之间的同名冲突,应该将不同库的标识符在不同的命名空间中定义(或声明)。标准C++库的所有的标识符都是在一个名为 std 的命名空间中定义的,或者说标准头文件(如 iostream )中函数、类、对象和类模板是在命名空间 std 中定义的。stdstandard (标准)的缩写,表示这是存放标准库的有关内容的命名空间。这样,在程序中用到C++标准库时,需要使用std作为限定。

​所以每次写 C++ 代码我们都会先写:

#include<iostream>
using namespace std;

​而在上面的代码中,没有 using namespace std; 这一句话,所以使用输出时需要 std::cout

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,105
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,582
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,429
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,200
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,836
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,919