我只是在自学 C + + 名称空间(来自 C # 背景) ,而且我真的开始认为,即使 C + + 做的所有事情都比大多数其他语言好,嵌套名称空间也不在其中!
为了声明一些嵌套的名称空间,我必须执行以下操作,这种想法是正确的吗:
namespace tier1
{
namespace tier2
{
namespace tier3
{
/* then start your normal code nesting */
}
}
}
而不是:
namespace tier1::tier2::tier3
{
}
在 C 区?
当我需要转发声明时,这变得更加疯狂:
namespace tier1
{
namespace tier2
{
namespace forward_declared_namespace
{
myType myVar; // forward declare
}
namespace tier3
{
/* then start your normal code nesting */
class myClass
{
forward_declared_namespace::myType myMember;
}
}
}
}
铭记我开发的一个典型系统包括:
MyCompany::MySolution::MyProject::System::[PossibleSections]::Type
这就是为什么在 C + + 示例中不常使用名称空间的原因吗?或者通常只有单个(不是嵌套的)名称空间?
更新
对于任何感兴趣的人,这就是我的下场解决这个问题。