Angenommen, ich den folgenden CodeMag einen von mehreren Erklärungen mit demselben Namen
namespace A {
int foo();
}
namespace B {
void foo();
}
using namespace A;
using namespace B;
int x = foo(); // error
und ich finde A::foo
wirklich nützlich, aber ist nicht so in B::foo
. Was kann ich tun, damit A::foo
bei nachfolgenden uneingeschränkten Verweisen auf foo
bevorzugt wird? Z.B. (was in Wirklichkeit keine Wirkung hat) oder unusing B::foo
.
Sie haben Namespace A und B und Sie möchten A :: foo dann bevorzugen, was Sie tun müssen, ist sowohl die Verwendung von Namespace-Anweisungen und dann in der Funktion, wo Sie bevorzugen A :: foo verwenden 'mit A :: foo 'und dann ruft' foo() 'ergibt foo Funktion von A – Deepanshu
Das ist keine gute Antwort - Siehe SergeyA Antwort unten - so ist es ein Kommentar. Sie können (und sollten) den Namespace explizit angeben: 'int x = A :: foo();' Dies macht die vollständige Verwendung von 'namespace' überflüssig. – user4581301