有关namespace 命名空间

以往都是习惯在开头声明了using namespace std;然后在全局直接使用,没有了解里面实际的意思。

今晚接触到namespace后,百度了一下发现理解不了其中的含义,在请教完一个前辈之后,在这用大白话解释下,希望能帮到想要了解的同学。

 

定义命名空间:namespace 命名空间名
声明命名空间:using namespace 命名空间名
命名空间名大多用于大型项目,防止多个人编写的代码中,同时定义了同名的变量发生冲突。
而命名空间可以很好的避免这个情况,当使用了using namespace 命名空间名来声明空间名时,在这个作用域内,调用命名空间里的函数不用声明作用域,直接调用即可。
0
例:在15行时声明了using namespace savitch2,那么调用greeting( )时,就默认为调用的第7行的函数,如果不这么声明,则需要savitch2::greeting( )才能调用到目标函数
而在22行的调用中,由于20行声明了savitch1,则调用的为第3行定义的函数;
 

  

注意:如果在图1的20行前调用了greeting( )函数,则会报错,因为此时已经不在savitch2的声明的命名空间范围内了,所以不会跳到savitch2::greeting( )中
像2行的声明,则整个方案里面调用std里面的函数,都可以直接调用,而不用std::相关函数名( )。
 
 
简单来说定义命名空间(namespace) 就是声明一个名字,在其声明空间(using namespace)范围内使用这个空间所属的变量(或函数),无需再使用::声明作用域。

 

如果解释有误欢迎指出,多多包涵。

posted @ 2021-04-26 02:43  __阿阿阿怪  阅读(115)  评论(0编辑  收藏  举报