c++命名空间namespace

概念

命名空间就相当于一个作用域、上下文、一个范围,可以由用户自己命名,用来区分不同库中相同的函数名、类名、变量名等,c++中存在大量的变量、函数和类名,如果把他们放到一个全局命名空间中,会导致很多名称冲突。有了命名空间就可以在不同的命名空间中使用相同的名字,而不会出现名称冲突。

名称冲突的情况

  • 自定义函数名与标准库函数名重名
  • 程序中使用的名字与第三方库中使用的名字重名
  • 同一项目不同模块中名字冲突

命名空间对于声明于其中的名字都进行了本地化

定义命名空间

命名空间的一些作用就是建立一些相互分隔的作用域,把一些全局实体分隔开来,以免产生名称冲突。

namespace 命名空间名 {
	声明;
	/*
		变量(可以带有初始化)以及常量
		函数(可以是定义或者声明)
		结构体
		类
		模板
		命名空间(在一个命名空间中又定义一个命名空间,即嵌套命名空间)
	*/
}

命名空间中成员的使用

一般方法:命名空间::命名空间成员名
简化方法:

  • 命名空间别名:namespace SD = Student; //SD等同Student
  • using 命名空间成员名:using st::Student; //Student等同于st::Student
  • using namespace 命名空间名
namespace person {
	class Student {
	};
}
namespace office {
	class Table {
	};
}
int main() {
	person::Student s1;
	office::Table t1;
	return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值