本文介绍: C++命名空间 C语言的命名冲突问题 C语言全局变量和局部变量 C++命名空间解决命名冲突
1. 为什么要有命名空间?
在C语言中,局部变量和全局变量如果同名,在使用时可能会造成冲突。这并不是想避免就能避免的,在程序中,不仅仅是变量,函数也大量存在,所以存在许多命名冲突的问题。特别是一个项目,如果由一个开发团队进行开发,团队中存在多名开发成员,这样的命名冲突问题就更多了。
上面这段C代码,在main()函数中,不删除不注释掉局部变量val情况下,如果就想要访问全局变量val,这是无法做到的。这就是命名冲突引起的问题,也导致C语言在这方面不够灵活。
2. 命名空间介绍
而C++中使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。如何更好地理解这段话呢?请看下面代码例子:
这段程序实际上无法运行,就不说运行,因为这甚至不能编译过去,看报错信息就知道了:
因为在C语言标准库stdlib.h中,rand是一个函数!这个例子就更明显是命名冲突引发的问题了,不过这一个问题倒是可以解决,就是把变量rand放在main()函数局部定义,就可以使用了。虽然可以解决,但不能否认存在这样一个问题。
这时就可以使用命名空间解决这个问题了,当然这也只能是将C代码改成C++才支持。
3.命名空间三种使用方式
4. 注意
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。