C++的命名空间namespace

它是个啥

  • 硬核理解——“地基

  • 就像A小区有一栋楼房叫6#,B小区恰好也有,我们要去B小区的6#怎么办?所以要去的话就要加个前缀,我要去B小区的6#,这个A小区和B小区就是命名空间了

为什么需要有namespace

  • 先来看个例子
// 微信朋友圈模块,名字贼长
void wechat_moments_add_post(){}

// 使用namespace
namespace wechat{
    namespace moments{
        void add_post(){
            
        }
    }
}
  • 逻辑相关的标示符限定在一起,组成相应的命名空间

  • 使整个系统模块化,更加简洁清晰

  • 还解决了不同库变量名称相同的问题,避免命名冲突

使用风格

// 第一种
std::cout << "hello" << endl;

// 第二种 推荐这样单个导入
using std::cout;
using std::endl; 
using std::string;

// 第三种 导入标准库组件,不推荐
// 写demo才用,项目中不要,避免命名泛滥导致冲突
using namespace std;
  • 在C++中,我们常用的头文件为不带“.h”后缀的头文件,而这些头文件里所包含和定义的标识符在std空间中,所以我们使用C++时经常需要加上

  • 而原C语言的头文件为带“.h”后缀的头文件,这些头文件里所包含和定义的标识符在全局命名空间中,不需要声明使用std空间

细节

  • 允许跨名称空间的重载
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值