Предположим, что у меня есть метод, определенный в двух разных пространствах имен:
namespace foo
{
void print()
{
//do work...
}
}
namespace bar
{
void print()
{
//do work...
}
}
Функции foo::print()
и bar::print()
абсолютно равны. В моем проекте используются многочисленные вызовы этих функций.
Есть ли способ удалить одно из print()
определений без изменения вызовов этой функции? Я имею в виду что-то вроде следующего (конечно, язык С++ не позволяет эту конструкцию, это просто пример):
namespace foo, bar //wrong code!
{
void print()
{
//do work...
}
}
Если нет способа реорганизовать код, как я хочу, скажите, пожалуйста, вам нравится следующее решение? Будете ли вы рады, если ваш проект содержит такой код?:)
namespace foo
{
void print()
{
//do work...
}
}
namespace bar
{
void print()
{
foo::print();
}
}
ADD:
Спасибо, ребята, я полностью удовлетворен вашими ответами. Только один момент я хочу, чтобы вы уточнили: есть ли разница между using ::foo::print
и using foo::print
?