C++ C++;将名称空间使用到相同的嵌套名称空间中
假设我有一个名称空间:C++ C++;将名称空间使用到相同的嵌套名称空间中,c++,header,namespaces,C++,Header,Namespaces,假设我有一个名称空间: namespace UI { } namespace Domain { } 我还有另一个名称空间: namespace UI { } namespace Domain { } 现在让我们假设在域名称空间中,我还有一个特定于该域的UI名称空间 namespace Domain { namespace UI { } } 是否可以将全局UI命名空间导入域UI命名空间,而不将其导入域命名空间?我知道使用名称空间通常不是一个好主意,但从概念上讲,域
namespace UI
{
}
namespace Domain
{
}
我还有另一个名称空间:
namespace UI
{
}
namespace Domain
{
}
现在让我们假设在域名称空间中,我还有一个特定于该域的UI名称空间
namespace Domain
{
namespace UI
{
}
}
是否可以将全局UI命名空间导入域UI命名空间,而不将其导入域命名空间?我知道使用名称空间通常不是一个好主意,但从概念上讲,域UI名称空间应该同时位于全局UI名称空间和域名称空间中。唯一可能的方法是使用名称空间别名或将整个名称空间UI使用到domain::UI中。在这两种情况下,都有一种从域名称空间访问它的方法 示例:
namespace UI {
class Test {
};
}
namespace Domain {
}
namespace Domain {
namespace UI {
namespace _UI = ::UI;
struct Test2 {
_UI::Test param;
};
}
}
namespace Domain2 {
namespace UI {
using namespace ::UI;
struct Test2 {
Test param;
};
}
}
是的,没错,在引用全局名称空间时使用::UI。哇,你可以有名称空间别名,但你根本不知道。还有一个问题,如果我使用第二个解决方案标题,它是否会为域UI命名空间的所有用途导入全局UI?否,仅适用于包含“using namespace::UI”的文件或包含带有using命名空间的标题的文件。C++中的命名空间不像GO中的示例包那样工作。如果您没有定义某个内容的标题,则没有该标题的可见性。