在 C++ 中使用整个命名空间的缺点


在 C++ 中,我们使用不同的命名空间。我们还可以创建我们自己的命名空间。例如,我们通常使用称为 std 的标准命名空间。我们编写以下类似语法

using namespace std;

在标准库中,它包含你在构建应用程序中使用的常用功能,例如容器、算法等。如果这些名称外露,例如,如果它们全局定义了一个队列类,那么你就再也无法在没有冲突的情况下使用相同的名称。因此,他们创建了一个命名空间 std 来包含此更改。

using namespace 语句仅表示在它出现的作用域中,使 std 命名空间下的所有内容都可用,而无需在每个内容之前加上前缀 std::。

虽然这种做法对于示例代码来说是可以的,但将整个 std 命名空间引入到全局命名空间中不好,因为它违背了命名空间的目的并可能导致名称冲突。这种情况称为命名空间污染。

更新于: 2019 年 12 月 30 日

浏览 243 次

职业生涯的开端

完成课程,获得认证

开始
广告