在 C++ 中,“using namespace std” 是什么意思?
考虑这样一种情况,在一个班里有两个名字相同的人,都叫 Piyush。每当我们需要区分他们时,我们肯定需要使用一些额外的信息来配合他们的名字,比如他们居住的地区(如果他们住在不同的地区),或者他们母亲或父亲的名字等等。
同样的情况也可能出现在你的 C++ 应用程序中。例如,你可能正在编写一些代码,其中包含一个名为 xyz() 的函数,并且还有一个可用的库也包含相同名称的函数 xyz()。现在编译器无法知道你的代码中引用的是哪个版本的 xyz() 函数。
命名空间旨在克服这个难题,并用作额外的信息来区分在不同库中可用的同名函数、类、变量等。使用命名空间,你可以定义名称定义的上下文。本质上,命名空间定义了一个作用域。
C++ 拥有一个标准库,其中包含你在构建应用程序时使用的通用功能,例如容器、算法等。如果这些库使用的名称是公开的,例如,如果他们在全局范围内定义了一个队列类,那么你将无法再次使用相同的名称而不会发生冲突。因此,他们创建了一个命名空间 std 来包含此更改。
using namespace 语句的意思是在它所在的范围内,使 std 命名空间下的所有内容都可用,而无需在每个内容前添加 std:: 前缀。
虽然这种做法对于简短的示例代码或简单的程序来说是可以的,但将整个 std 命名空间引入全局命名空间并不是一个好习惯,因为它违背了命名空间的目的,并可能导致名称冲突。(即使最初没有名称冲突,随着更多代码、库等被添加到项目中,它们也可能在维护期间出现。)这种情况通常被称为命名空间污染。
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP