1.命名空间

我们在使用c++的时候会像固定格式一样加上一句话那就是 下面这个代码

#include<iostream>
using namespace std;

那么为什么要加上这句话呐这里就要说一个概念叫做命名空间,我们都知道c语言我们定义的变量名称不能 重复,而c++呐为了避免命名重复这个问题呐就引入了一个命名空间列如一下代码。

#include<iostream>
using namespace std;
int n=5;
int main()
{
   int n=10;
    cout<<n;
    return 0;
 } 

在这里呐很明显打印的结果是5,那么外面的n是全局变量他所在的空间就是全局区域,而main函数里面的就是局部变量在局部区域,从这里我们可以看出来局部区域和全局区域是允许有变量的名字重复的并且如果变量名称重复 的话很明显局部区域的优先级要高于全局区域。

然后再说回这个namespace 命名空间我们可以试试不加这句话,那么不加这句话我们会发现cout啊这些函数都没办法使用了,因为这些函数也是在命名空间中的,而这些,命名空间就像一个瓶子你如果不把瓶盖打开就用不了瓶子内部的东西而using namespace std其实就相当于打开瓶盖。

好的那么我们清楚了两个概念 第一就是不同命名空间中的变量是可以重名的, 第二就是 这些不同命名空间中的变量的使用是有优先级的 第三就是命名空间如果不展开的话其定义的变量和函数是没办法使用的。

如何自定义一个命名空间并且在不展开的前提下使用空间内的变量。

#include<iostream>
using namespace std;
int n=5;
namespace byte{
    int a =10;
}
int main()
{
    //int n=10;
    //cout<<n;
    cout<<byte::a;
    
    
    return 0;
 } 

那么既然存在优先级那么谁的优先级更高呐 优先级顺序是 局部域>全局域>自定义展开空间域。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值