我正在写一些不再在公司工作的同事写的代码,我发现了以下代码:(我在下面删减了这些代码)
namespace NsA { namespace NsB { namespace NsC {
namespace {
class A { /*etc*/ };
class B { /*etc*/ };
}
namespace {
class C { /*etc*/ };
}
} } }
我不理解第3行和第8行的名称空间命令的用途。
有人能解释一下没有名称的名称空间条目的用途吗?
谢谢
发布于 2008-11-25 15:34:25
这是一个“匿名命名空间”--它创建了一个隐藏的命名空间名称,保证每个“翻译单元”(即每个CPP文件)是唯一的。
这实际上意味着该名称空间内的所有项都对该编译单元外部隐藏。它们只能在同一文件中使用。另请参见未命名名称空间上的this article。
https://stackoverflow.com/questions/317719
复制相似问题