¿Cómo coloco algún código en múltiples espacios de nombres sin duplicar este código?
Supongamos que tengo el método definido en los dos espacios de nombres diferentes:
namespace foo
{
void print()
{
//do work...
}
}
namespace bar
{
void print()
{
//do work...
}
}
losfoo::print()
y elbar::print()
las funciones sonabsolutamente igual. Mi proyecto utiliza las numerosas llamadas de estas funciones.
¿Hay alguna manera de eliminar uno de losprint()
definicionesSin cambiar las llamadas de estas funciones.? Me refiero a algo como lo siguiente (por supuesto, el lenguaje C ++ no permite esta construcción,es solo un ejemplo):
namespace foo, bar //wrong code!
{
void print()
{
//do work...
}
}
Si no hay manera de refactorizar el código como deseo, dígame, ¿le gusta la siguiente decisión? Te alegrarías situ ¿El proyecto contiene tal código? :)
namespace foo
{
void print()
{
//do work...
}
}
namespace bar
{
void print()
{
foo::print();
}
}
AÑADIR:
Gracias chicos, estoy completamente satisfecho con sus respuestas. Solo un momento quiero que aclaren: ¿hay una diferencia entreusing ::foo::print
yusing foo::print
?