为什么使用“using namespace std”被认为是不良实践?
C++ 具有一个标准库,其包含无处不在的用于构建应用程序的程序,如容器、算法等。如果实际使用这些名称,例如,如果在全局定义一个队列类,你将永远无法再使用相同的名称而不会产生冲突。因此他们创建了一个命名空间 std 来包含这些更改。
using namespace 语句只是表示,在它所存在的范围中,使 std 命名空间下的所有内容都可用,而无需在每个内容之前加上 std:: 前缀。
尽管这种做法对于范例代码来说是可以的,将整个 std 命名空间引入全局命名空间并不好,因为它违背了命名空间的宗旨,并且会导致名称冲突。这种情况被称为名称空间污染。
广告