Como colocar algum código em vários espaços para nome sem duplicar esse código?
Suponha que eu tenha o método definido nos dois namespaces diferentes:
namespace foo
{
void print()
{
//do work...
}
}
namespace bar
{
void print()
{
//do work...
}
}
ofoo::print()
e abar::print()
funções sãoabsolutamente igual. Meu projeto utiliza as inúmeras chamadas dessas funções.
Existe uma maneira de remover um dosprint()
definiçõessem alterar as chamadas dessas funções? Quero dizer algo como o seguinte (é claro, a linguagem C ++ não permite essa construção,é apenas um exemplo):
namespace foo, bar //wrong code!
{
void print()
{
//do work...
}
}
Se não houver como refatorar o código como eu quero, diga-me, você gosta da seguinte decisão? Você ficará feliz seseu projeto contém esse código? :)
namespace foo
{
void print()
{
//do work...
}
}
namespace bar
{
void print()
{
foo::print();
}
}
ADICIONAR, ACRESCENTAR:
Obrigado pessoal, estou totalmente satisfeito com suas respostas. Apenas um momento, quero que você esclareça: há uma diferença entreusing ::foo::print
eusing foo::print
?