C++中引入头文件难免会有相同的类名导致冲突,所以提供了NameSpace来进行更多的减少类名冲突的问题。但是类名的冲突总是不能被完全解决的。
比如大家再引入了两个nameSpace的情况下,其中两个Namespace都有相同的类:
//nameSpace 测试
namespace A
{
class T
{};
namespace B
{
class T
{};
}
}
然后现在进行使用:
using namespace A;
using namespace A::B;
void main()
{
auto t=T();
}
那么编译器会报 “T”不明确的错误,所以这种情况你要是用T类必须要申明哪个namespace。 A::T或者 B::T.