7

可能重复:
为什么是“使用命名空间标准;” 在 C++ 中被认为是一种不好的做法?

例如,我已经看到了一些人们使用的代码示例,std::cout而在其他地方,为了简单起见,人们会将其using namespace std;放在顶部。一般首选哪个?

4

3 回答 3

3

用于std::cout避免任何潜在的名称冲突。如果您使用 using using namespace std;,您将使用可能与您或团队中其他人编写的类或函数名称冲突的所有标准名称填充您的全局命名空间。这在C++ faq liteSO中有很好的解释

于 2012-08-15T14:26:06.197 回答
2

我个人在编写代码时使用完整的命名空间命名,例如std::string,等等。它使任何阅读该命名空间的人都更清楚,开发人员想要使用哪个功能。

我看过下面的一段话:

写一次,读一千遍……

:)

于 2012-08-15T14:18:44.400 回答
0

首先请注意,您永远不 using namespace应该在标题中 - 您可能已经意识到这一点。原因是它将带入using包含它的任何源文件中。

即使在源文件级别,我也更喜欢明确限定标准库函数和类 liek std::cout。但是在某些情况下,为了方便起见,我会使用特定的 using(using std:endl例如)。但是,我通常更喜欢显式限定。

于 2012-08-15T15:08:59.457 回答