同じ関数で2つの異なる名前空間を使用して完全修飾名空間なしのusing namespace
ディレクティブを使用すると、エラーメッセージ(エラー:オーバーロードされた呼び出しがあいまいです。同じ関数内で別の名前空間を使用する
#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'のスコープ内で同じシグネチャを使用するため、呼び出しがあいまいです。 –