比如说#include是包含一个文件,文件有趣连接一个源文件,当时命名空间是一个什么呢?
是一个库吗?是一个文件吗? 命名空间是定义的什么地方的? 或者说是一个什么东西
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
避免冲突,在C、C++、C#等语言中,都有命名空间的概念,这是为了防止不同人编写类库发生命名冲突而设计的,命名空间可以使变量、函数名称、类名称作用在本空间内,而其他空间可以使用同样的名称。就好比不同的文件夹下可以有相同的文件名一样,但在相同的文件夹下不能有重复的文件名,命名空间就好比这个虚拟的文件夹。
避免冲突,在C、C++、C#等语言中,都有命名空间的概念,这是为了防止不同人编写类库发生命名冲突而设计的,命名空间可以使变量、函数名称、类名称作用在本空间内,而其他空间可以使用同样的名称。就好比不同的文件夹下可以有相同的文件名一样,但在相同的文件夹下不能有重复的文件名,命名空间就好比这个虚拟的文件夹。
标准C++引入命名空间,除了可以避免成员的名称发生冲突之外,还可以使代码保持局部性,从而保护代码不被他人非法使用。如果你的目的主要是后者,而且又为替命名空间取一个好听、有意义、且与别人的命名空间不重名的名称而烦恼的话,标准C++还允许你定义一个无名命名空间。你可以在当前编译单元中(无名命名空间之外),直接使用无名命名空间中的成员名称,但是在当前编译单元之外,它又是不可见的。