C++的命名空间

C++和C语言是有一些相似的地方的,而且C++就是C语言的改进版本,所以学习C++也得学习C语言,但是他们又是有很多不同的地方

下面我们就看一下C++的命名空间

我们首先看一下

C++的命名空间_第1张图片

如果是这一段代码,那么这里输出的是多少呢?

9e3eba69b345495a8a7eaa98460b23e9.png 

很好这里输出的是1,这里C语言里面也说过,如果有两个名字相同的变量,并且一个是局部的另一个是全局的,那么这里就是局部优先原则这里先访问局部的变量

那么如果我们想要访问全局的怎么办?(不能删除或者屏蔽掉局部的)

所以我们可以这样

C++的命名空间_第2张图片 

b157d80909604632afadfa49bd175ada.png 

我们可以看到,这里我们就访问到了0

C++的命名空间_第3张图片 

而我们使用的这个就叫做域作用限定符

如果我们还想要一个a的变量呢?我们应该怎么办?

C++的命名空间_第4张图片 

那么如果我们分别想访问这三个变量,我们应该怎么访问呢?

C++的命名空间_第5张图片 

我们就可以这样访问

C++的命名空间_第6张图片 

那么如果我们不想指定的访问tmp里面的a变量呢?

 C++的命名空间_第7张图片

我们就可以展开命名空间,但是这里我们看到出现错误了,因为我们展开了命名空间,所以这里的a和全局的冲突了,所以我们很多时候不需要展开

C++的命名空间_第8张图片 

所以这时候我们就可以理解,为什么很多写C++的都刚开始会写上面的using namwspace  std

但是这里不展开也可以

我们可以指定

 

 

你可能感兴趣的:(c++)