为什么“使用命名空间 std' 被认为是不良做法?
C++ 具有一个包含在应用程序(如容器、算法等)构建中使用的通用功能的标准库。如果这些库使用的名称公开(例如,如果在全局范围内定义了一个队列类),您将永远无法再次使用该名称而不会发生冲突。因此,他们创建了一个命名空间 (std) 来容纳此更改。
using namespace 语句仅表示在存在它的作用域中,使 std 命名空间下的所有内容可用,而无需在每个内容前加上 std:: 前缀。
虽然此做法对示例代码而言可以接受,但将整个 std 命名空间引入到全局命名空间中并不好,因为它破坏了命名空间的目的,并可能导致名称冲突。这种情况被称为命名空间污染。
广告