爲什麼我在使用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'的範圍內,因此 - 調用是不明確的。 –