【发布时间】:2023-03-13 09:40:02
【问题描述】:
所以有一段时间我一直在使用...
using namespace::std;
最近我意识到应该是这样的
using namespace std;
有人可以向我解释为什么我所做的工作有效,以及它与声明使用某个命名空间的正确方式有何不同?
【问题讨论】:
-
请考虑完全不要这样做。
标签: c++ namespaces std using
所以有一段时间我一直在使用...
using namespace::std;
最近我意识到应该是这样的
using namespace std;
有人可以向我解释为什么我所做的工作有效,以及它与声明使用某个命名空间的正确方式有何不同?
【问题讨论】:
标签: c++ namespaces std using
第一个版本有效,因为编译器认为它是
using namespace ::std;
// Notice space^
这只是告诉编译器在全局范围内查找名称空间std。
左侧没有任何内容的范围运算符:: 与全局范围相同。
【讨论】:
std不一样?
std 在全局命名空间中。
::std 和 std 在这种情况下是等价的。
std在全局范围内,所以使用std或::std是一样的。