Pourquoi j'obtiens un message d'erreur (erreur: appel de myCout()
surchargé est ambigu) lorsque j'utilise deux espaces de noms différents dans la même fonction en utilisant la directive using namespace
sans espace de nom complet?Utiliser un espace de noms différent dans la même fonction
#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);
}
Si je namespaces qualifiés pour myCout()
dans le deuxième espace de noms comme indiqué ci-dessous, il n'y a pas de problème
int main(void)
{
cout<<"Hello World\n";
using namespace first;
myCout();
second::myCout();
return(0);
}
Une fois que vous ne 'en utilisant deuxième espace de noms,', il y a 2 définitions de 'myCout', la même signature, dans le cadre de 'main', donc - l'appel est ambigu. –