当前位置:网站首页>命名空间与库
命名空间与库
2022-07-25 13:39:00 【侯稼澍】
为何提出命名空间
在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存在于全局作用域中,可能会导致很多冲突。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字 污染,namespace关键字的出现就是针对这种问题的。
希望通过命名空间解决命名的冲突与污染问题
命名空间提出前,这些名称将都存在于全局作用域中。
问题也出现于此
通过对命名作用域的划分,使得本来都是命名在全局作用域中的名称,被命名空间所分割开
所有名称都有了自己的所处的命名空间
命名空间的定义
定义命名空间,需要使用到namespace关键字,后面跟命名空间的名字,然后接一对{}即可,{}中即为命名 空间的成员。
namespace name {
声明与定义
}命名空间的三个特性
1.命名空间中可以定义变量/函数/类型
2.命名空间可以嵌套
3.同一个工程中允许存在多个相同名称的命名空间,编译器最后会合成同一个命名空间中。
命名空间的使用
加命名空间名称及作用域限定符
通过作用域限定符,告知编译器该名称是哪个作用域中的
int main()
{
printf("%d\n", N::a);
return 0;
}使用using将命名空间中某个成员引入
using N::b;
int main()
{
printf("%d\n", N::a);
printf("%d\n", b);
return 0;
}使用using namespace 命名空间名称 引入
using namespce N;
int main()
{
printf("%d\n", N::a);
printf("%d\n", b);
Add(10, 20);
return 0;
}命名空间与std(标准命名空间)
c++98时,引入了命名空间以解决命名的冲突与污染问题。
但在c++98之前,已经
有一些库函数存在,例如:<iostream.h>、<fstream.h>等
C++标准第一个版本,绝大多数编译器都支持,得到了国际标准化组织(ISO)和美国标准化 协会认可,以模板方式重写C++标准库,引入了STL(标准模板库)
讲所有的库(包括c语言的库)进行了重新编写,所有存在标准命名空间的库,是不以.h为文件后缀的
重写过后的库中,所有的名称是命名于std此命名空间中的,在调用标准库中的名称时,要标明该名称所在的命名空间
边栏推荐
- 移动端网站,独立APP,网站排名策略有哪些?
- Jupyter Notebook介绍
- C#基础学习(二十三)_窗体与事件
- JS array indexof includes sort() colon sort quick sort de duplication and random sample random
- Blocking queue for concurrent programming
- 刷题-洛谷-P1046 陶陶摘苹果
- Applet sharing function
- hcip第八天笔记
- G027-op-ins-rhel-04 RedHat openstack creates a customized qcow2 format image
- 6W+字记录实验全过程 | 探索Alluxio经济化数据存储策略
猜你喜欢

JS Array indexOf includes sort() 冒号排序 快速排序 去重和随机样本 random

Excel录制宏

0716RHCSA

Concurrent programming - memory model JMM

Install mujoco and report an error: distutils.errors DistutilsExecError: command ‘gcc‘ failed with exit status 1

leetcode--四数相加II

Applet starts wechat payment

刷题-洛谷-P1035 级数求和
Congestion control of TCP

2022年下半年软考初级程序员备考
随机推荐
埃拉托斯特尼筛法
ES6 array de duplication new set()
The whole process of 6w+ word recording experiment | explore the economical data storage strategy of alluxio
Numpy快速入门
说说对hashcode和equals方法的理解?
Numpy简介和特点(一)
领域驱动模型设计与微服务架构落地-模型设计
adb通过Wi-Fi连接小米手机
Error of Tencent cloud [100007] this env is not enable anonymous login
2022全球开发者中,你的收入排多少?
0713RHCSA
Mujoco+spinningup for intensive learning training quick start
What is your revenue rank among global developers in 2022?
Okaleido上线聚变Mining模式,OKA通证当下产出的唯一方式
「数字安全」警惕 NFT的七大骗局
Prepare for 2022 csp-j1 2022 csp-s1 preliminaries video set
Peripheral system calls SAP's webapi interface
Jupyter Notebook介绍
Brpc source code analysis (III) -- the mechanism of requesting other servers and writing data to sockets
刷题-洛谷-P1075 质因数分解