在C ++中使用整个名称空间的缺点
在C++中,我们使用不同的命名空间。我们还可以创建自己的命名空间。例如,通常,我们使用称为std的标准命名空间。我们编写如下语法:
using namespace std;
在标准库中,它包含用于构建应用程序的常用功能,例如容器,算法等。如果它们使用的名称是公开的,例如,如果它们全局定义了队列类,则您将永远无法在没有冲突的情况下再次使用相同的名称。因此,他们创建了一个命名空间std来包含此更改。
using命名空间语句只是意味着在它存在的范围内,使std命名空间下的所有内容都可用,而不必在每一个之前都加上std::前缀。
尽管这种做法对于示例代码来说还可以,但是将整个std命名空间拖入全局命名空间并不好,因为它违反了命名空间的目的,并且可能导致名称冲突。这种情况称为命名空间污染。