У меня есть код, приведенный нижеИспользование пространств имен
#include<iostream>
namespace first{
void test()
{
std::cout<<"This is the first one \n";
}
}
namespace second{
void test()
{
std::cout<<"This is the second one \n ";
}
}
int main()
{
using namespace first;
test();
using namespace second;
test();
return 0;
}
Приведенный выше код дает мне ошибку компиляции вызова перегруженного тестирования функции. Я сомневаюсь, почему второй оператор using using namespace second
не скрывает первое пространство имен?
Далее я попытался объявить пространство имен внутри тела функции, это может показаться странным, но я попытался проверить, могу ли я это сделать или нет. Это также привело к ошибке компиляции. Что заставляет меня задаться вопросом, можно ли только объявить пространства имен только в глобальном масштабе?
Мой третий и последний вопрос: есть ли способ, с помощью которого я могу только объявить две функции с одной и той же сигнатурой внутри двух разных пространств имен и определить их вне внешней части пространства пространства имен? Как ниже
#include<iostream>
namespace first{
void test();
}
namespace second{
void test();
}
int main()
{
return 0;
}
Снова idk ли мой вопрос действителен или нет.
@DevSolar Я редактировал вопрос Теперь –