为什么我在使用using namespace
指令而不使用完全限定名称空间的情况下在相同函数中使用两个不同名称空间时出现错误消息(错误:超载myCout()
调用不明确)?在同一函数中使用不同名称空间
#include <iostream>
using namespace std;
namespace first
{
void myCout(void)
{
cout<<"Hello World is great\n";
}
}
namespace second
{
void myCout(void)
{
cout<<"Hello Sky is high\n";
}
}
int main(void)
{
cout<<"Hello World\n";
using namespace first;
myCout();
using namespace second;
myCout();
return(0);
}
如果我在第二个命名空间使用完全合格的命名空间为myCout()
如下面给出的,没有问题
int main(void)
{
cout<<"Hello World\n";
using namespace first;
myCout();
second::myCout();
return(0);
}
你'使用第二个命名空间后,',有myCout'的'2点的定义,与相同的签名,在'main'的范围内,因此 - 调用是不明确的。 –