【问题标题】:C++ using namespace declarationC++ 使用命名空间声明
【发布时间】:2023-03-13 09:40:02
【问题描述】:

所以有一段时间我一直在使用...

using namespace::std;

最近我意识到应该是这样的

using namespace std;

有人可以向我解释为什么我所做的工作有效,以及它与声明使用某个命名空间的正确方式有何不同?

【问题讨论】:

标签: c++ namespaces std using


【解决方案1】:

第一个版本有效,因为编译器认为它是

using namespace ::std;
// Notice space^

这只是告诉编译器在全局范围内查找名称空间std

左侧没有任何内容的范围运算符:: 与全局范围相同。

【讨论】:

  • 所以它和我们经常说的std不一样?
  • @taocp 是一样的,因为std 在全局命名空间中。
  • @taocp:也一样。 ::stdstd 在这种情况下是等价的。
  • @taocp 是,因为std在全局范围内,所以使用std::std是一样的。
  • 谢谢@juanchopanza、John Dibling、Joachim Pileborg
猜你喜欢
  • 1970-01-01
  • 2011-09-12
  • 2011-06-14
  • 1970-01-01
  • 1970-01-01
  • 2011-09-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多