C++学习笔记1 - namespace命名空间

1、命名空间的引入

  • 命名空间namespace,是C++引入的一种解决全局变量和函数名冲突的机制。C语言没有namespace,但是C++及之后的Java、Python等语言都有。
  • namespace的关键点有2个:一是如何解决名称冲突,二是如何合法访问变量。

2、C语言如何解决名称冲突

  • 大项目中会有很多C文件,全局变量和函数都是extern链接属性,因此名称冲突是客观存在的。一个项目是一个单体程序,项目中的全局变量和函数理应能互相访问,因此名称冲突是客观存在的。
  • C语言中解决名称冲突的办法是:第一,同一个C文件不要太大,由一个人写;第二,每个C文件(或几个C文件构成的一个模块)中所有全局变量和函数前加统一的唯一前缀(例如:usb_init / spi_init);第三,不需要文件外访问的全局变量和函数前面都加static关键字。
  • C语言的解决方案可行,C++早期就是这样做的,但这种方法太low,于是引入了命名空间的机制。

3、命名空间如何解决问题

  • 为实现命名空间机制,C++引入了namespace关键字,定义格式为namespace xx{ };
  • 一个特定名称的namespace的一对大括号内部定义的变量、函数、类等均属于该命名空间内。
  • 在命名空间内部互相引用时可以直接使用变量名、函数名等。
  • 跨命名空间互相引用时必须同时指定被引用方的命名空间名和变量名/函数名才可以找到
  • 命名空间看起来就好像一种前
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值