摘要:本文简要介绍了C++初阶中using namespace std的概念。通过解析using namespace std的含义和作用,帮助初学者理解其在C++编程中的实际应用,强调正确使用的重要性,并提醒注意避免可能的命名冲突。本文旨在帮助初学者更好地掌握C++编程基础。
🍺0.前言
各位博友大家好,这里是持续分享C++知识的小赵同学,今天要分享的C++知识是C++初阶,小赵将向大家介绍C++初阶的知识。✊
相信很多人的C++学习都是从这两句代码开始的:
#include using namespace std;
很多人其实能读懂第一个头文件的意思,但问到下面那个是什么意思,很多人便会面露难色,今天小赵就来带大家一起去学习这块的知识。
1、命名空间
在C/C++中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称都将存在于全局作用域中,可能会导致很多命名冲突,使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突或名字污染,namespace关键字的出现就是针对这种问题的。
那么这究竟是什么意思呢?
举一个简单的例子,你未来工作了,老板让你去完成项目的一个部分,让你的同事去完成项目的另一个部分,这本身没啥问题,你的那部分在你的电脑上运行完美,他的部分在他的电脑上也能完美运行,但当你们两的代码合到一起的时候,却发现编译器开始报错了,原来你们两定义了同一个函数名,但这个时候你们两的函数作用不同,这时候编译器就开始报错了,还可能存在其他情况,例如两个结构体名字相同等,这时就需要命名空间来避免这种冲突,命名空间是为了解决这种问题而诞生的,它允许你将相关的函数、变量等放在一个“空间”里,避免全局作用域中的命名冲突,这个空间叫做命名空间,在这个命名空间里定义的函数或变量,只有在这个命名空间里才能被访问,这样大大避免了相同名字的问题,那么具体是怎么解决的呢?接下来我们将深入研究命名空间。
1、1 命名空间定义
定义命名空间需要使用到namespace关键字,后面跟着命名空间的名字,然后接一对{}即可,{}中即为命名空间的成员。
namespace xz { // 开辟一个叫xz的空间域 int x = 5; // 设立变量 int y = 6; int Add(int x, int y) { // 设立函数 return x + y; } }
那么这个时候我们的主函数再设立x实际上是与我们的命名空间的不一样的,那么命名空间里面究竟可以存什么呢?其实就是变量、函数和类型(就是C语言里的结构体)等,同时里面也可以嵌套命名空间,注意:一个命名空间就定义了一个新的作用域,命名空间中的所有内容都局限于该命名空间中。
1、2 命名空间使用
我们知道如果我们要调用定义的命名空间里的x有几种方法:
1、2.1 加命名空间名称及作用域限定符
我们知道什么叫作用域限定符,:。
这个时候我们发现我们的x用的就是命名空间里面的x了。
1、2.2 使用using将命名空间中某个成员引入 这个时候相当于在全局作用域中使用了这个局部域的东西了。 相当于把x从里面拉出来了。
1、2.3 使用using namespace 命名空间名称引入 使用using+namesapce+加我们定义的那个名字就等同于将这个空间的东西给我们这个空间使用,相当于把命名空间中的变量函数等放开给我们使用了,其实这里面还有一个问题就是我们为什么在主函数中定义一个x不会与外面的x冲突的问题,其实这里面就类似于我们在main里面调用一个函数在那个函数里面定义了一个名字和main一模一样的变量优先使用我们函数里面的也就是局部变量会优先使用如果没有局部变量那就会使用我们的全局变量。 这个时候我们再看最开始的问题答案就很明显了这行其实访问的就是我们c++的标准域中的函数等东西类似于我们c语言的#include而c++最前面的那个头文件其实是输入输出相关的一个头文件这个就留到我们的下一篇博客吧。 2.using namespace std 这个时候我们再看最初的问题其实答案就很明显了这条指令其实访问的是我们c++的标准库中的函数等资源类似于我们c语言的#include指令而std是c++标准库的一个命名空间包含了c++标准库中的所有函数和对象等以方便我们使用标准库中的功能而不用每次都写长长的名字 小赵今天的分享就到这里了如果大家有什么不明白的地方可以在小赵的下方留言哦同时如果小赵的博客中有什么地方不对也希望得到大家的指点谢谢各位家人们的支持你们的支持是小赵创作的动力加油如果觉得文章对你有帮助的话还请点赞关注收藏支持小赵如有不足还请指点方便小赵及时改正感谢大家支持!!!如果觉得文章不错的话请点赞关注哦!💎结束语 小赵今天的分享就到这里了感谢大家的观看和支持希望这些分享能对大家有所帮助如果有任何问题或建议欢迎随时联系小赵谢谢大家的支持!!!
还没有评论,来说两句吧...