gpt4 book ai didi

c++ - 关于 C++ 全局命名空间的困惑

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:29:43 26 4
gpt4 key购买 nike

根据我的理解,将 :: 附加到命名空间的前面是指全局命名空间,而不管任何 using 语句或父命名空间。如果是这样,而且我没有误解任何东西,那么为什么这样的代码可以编译(至少在 Visual Studio 中):

namespace Foo {
namespace Bar {
class X;
}
}

using namespace Foo;
int main(void)
{
::Bar::X x;
}

最佳答案

using namespace Foo;namespace Foo 的所有内容放入当前命名空间的上下文中。

由于 namespace Barnamespace Foo 的内容之一,并且 using 语句所在行的当前命名空间是全局命名空间, namespace Bar 被带入全局命名空间的上下文中。

关于c++ - 关于 C++ 全局命名空间的困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18155422/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com