Предположим, у меня есть следующий кодПредпочитают один из нескольких деклараций с таким же именем
namespace A {
int foo();
}
namespace B {
void foo();
}
using namespace A;
using namespace B;
int x = foo(); // error
и я нахожу A::foo
действительно полезным, но я не то, что в B::foo
. Есть ли что-нибудь, что я могу сделать, чтобы сделать A::foo
предпочтительнее после последующих безоговорочных ссылок на foo
? Например. using A::foo
(что на самом деле не имеет эффекта), или unusing B::foo
.
У вас есть пространство имен A и B, и вы хотите предпочесть A :: foo, тогда вам нужно удалить оба оператора 'using namespace', а затем в функцию, где вы хотите предпочесть A :: foo use' using A :: foo', а затем вызов 'foo()' приведет к функции foo из A – Deepanshu
. Это не очень хороший ответ. См. ответ SergeyA ниже - так что это комментарий. Вы можете (и должны) явно указать пространство имен: 'int x = A :: foo();' Это полностью исключает необходимость использования пространства имен. – user4581301