C++学习:(一)命名空间

C++学习:(一)命名空间

记录自己学习C++的点点滴滴,为了自己更好的复盘和回顾,如果可以帮助到你,我将不胜荣幸!!!



一、命名空间是什么

命名空间又称为名字空间,是程序员命名的内存区域,根据需要指定一些有名字的空间域,把一些全局实体分别存放到各个命名空间,从而与其他命名空间实体分隔开;存放在命名空间域中的全局实体只在本空间域内有效,命名空间对全局实体加以域的限制,从而解决命名冲突

命名空间的形式如下所示:

namespace 命名空间
{
	可以定义变量/函数/结构体//命名空间,统称为实体
}

命名空间中的变量使用如下所示:

命名空间::变量

其中 :: 称为作用域限定符

二、命名空间的使用方式

命名空间的使用方式包括三种:using编译指令、作用域限定符、using声明机制

1、using编译指令

其实这种方式是我们在C++代码中经常看到的,形式如下所示:

using namespace std;

其中std表示的是标准命名空间,可以一次将标准命名空间std中的实体全部引出来;但是如果我们不了解std标准命名空间的话,可能会出现我们自己的命名与std标准命名空间冲突的问题;(PS:往往std中无大写字母开头的命名)

2、作用域限定符

在上面我们已经有介绍作用域限定符 :: ,可以用于命名空间中变量的使用,其实就是在代码中需要使用命名空间中的变量时使用作用域限定符指定即可,形式如下:

std::cout<<" "<<std::endl;

通过
命名空间 + 作用域限定符 + 命名空间实体
的方式使用命名空间实体;

作用域限定符的方式使用并不方便,因为我们可能会在代码中多次使用命名空间某一实体,每次都用作用域限定符的话会很麻烦,因此也就引出来了第三种方式

3、using申明机制

using申明机制形式如下:

using std::cout;
using std::endl;

会在开头提前申明我们可能会用到的命名空间实体,不需要按照第一种方式将整个命名空间引入,也就不会存在命名冲突的问题,而且也避免了第二种方式中每次都需要加上作用域限定符的不方便


三、 匿名命名空间

匿名空间指的是不定义名义的命名空间,由于没有名字,该空间的实体不能在其他文件中引用,在本文件中使用匿名命名空间成员时不必使用命名空间限定;形式如下所示:

namespace {
	int number =10;
}

::number //使用匿名空间变量

匿名空间的变量,作用域从匿名空间声明开始到文件结束,因此我们也可以用匿名空间变量对静态变量进行替代

总结

命名空间的概念很简单也很基础,不过这也算是C与C++的一点不同;

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值