Dun*_*can 4 c++ scope namespaces
根据我的理解,追加::到命名空间的前面是指全局命名空间,而不管任何using语句或父命名空间.如果是这种情况,并且我没有误解任何内容,那么为什么这样的代码会编译(至少在Visual Studio中):
namespace Foo {
namespace Bar {
class X;
}
}
using namespace Foo;
int main(void)
{
::Bar::X x;
}
Run Code Online (Sandbox Code Playgroud)
using namespace Foo;将所有内容namespace Foo带入当前命名空间的上下文中.
由于namespace Bar是namespace Foo当前命名空间和当前命名空间之间的using语句是全局命名空间,因此namespace Bar被带入全局命名空间的上下文中.
| 归档时间: |
|
| 查看次数: |
526 次 |
| 最近记录: |