为什么c++提出了命名空间呢
1,防止项目组多个人定义的名字冲突
这里举个栗子
我在两个头文件里都定义了Iint()这个名字的函数,然后在主函数调用这个名字的函数
但是这个时候我调用的是list.h的函数还是queue.h的函数呢
于是就有了报错,这里就体现出了命名空间的重要性了。
这里使用命名空间 就可以避开定义了相同名字的问题
补充:这里的同名函数应该是函数重载了
这里补充一点关于函数重载的部分内容(搬运)
函数重载的规则:
函数名称必须相同。
参数列表必须不同(个数不同、类型不同、参数排列顺序不同等)。
函数的返回类型可以相同也可以不相同。
仅仅返回类型不同不足以成为函数的重载。
二、函数重载的作用:
重载函数通常用来在同一个作用域内 用同一个函数名 命名一组功能相似的函数,这样做减少了函数名的数量,避免了名字空间的污染,对于程序的可读性有很大的好处。
————————————————
(搬运函数重载作者原文链接:https://blog.csdn.net/alidada_blog/article/details/80734900)
2,防止和库里的名字冲突 例如在使用cout endl这些关键字时要用std的命名空间
所以这里要using一下 namespace std
:: 这个符号 叫做 域作用限定符
指定命名空间访问、 全局展开. 一般情况,不建议全局展开的。 部分展开
这三个功能
其一的指定命名空间访问如上面的 lsy1::Iint(),这里访问的list.h里的Iint。
其二 全局展开例如 在main函数之前的using namespace std;
其三 部分展开,举个栗子
这里部分展开了cout,相当于将cout将函数库里释放了出来,但是endl没有释放,所以这里会报错
但是将cout 和endl都释放出来 就没有问题了