C++重新认知:namesapce
2024-01-10 09:05:50
0、引言 为什么要用到命名空间
想必我们在写C++语言时经常在main.cpp文件内写下using namespace std 这句代码,这句代码有何作用呢?
其实写上这句代码后,我们就会使用std的命名空间。
好处:可以帮我们节省很多不必要的代码(std::就可以省去不写了)。
坏处:容易造成命名空间污染。
当我们写出同名的变量或者函数或者结构体时,一般境况下就会报错,但是我们希望都保留下来,并且在需要的时候调用他们,如何保留并且调用我们想要的,这里就用到了namespace,这也是设计的初衷——解决命名冲突的问题。
一、namespace
当我们有两个相同变量名时编译器就会报错。
1.1 命名空间声明格式
namespace _Name
{
}
这里可以看到,两个相同的变量都保留了,不过在使用我们namespace中的变量时需要 _Name:: 变量
1.2 ::运算符
::运算符是一个作用域,如果::前面什么都没有加代表的是全局作用域
命名空间加上::就是我们命名空间的作用域了。
1.3 命名空间的使用
-
命名空间的定义必须定义在全局范围
-
命名空间下可以存放变量、函数、结构体、类
-
命名空间可以重名、重名的会自动合并空间
- 命名空间可以嵌套命名空间
-
命名空间可以取别名
-
命名空间可以没有名字 ,没有名字相当于给命名空间 内的所有成员加上了static修饰相当于只能被当前文件调用,属于内部链接属性 (就近原则)
-
命名空间中的函数可以先声明,在外部定义,定义时需要加上命名空间作用域
-
命名空间中的函数可以先声明,在外部定义,定义时需要加上命名空间作用域
文章来源:https://blog.csdn.net/Rain_ZZX/article/details/135454769
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!