Jak umieścić jakiś kod w wielu przestrzeniach nazw bez duplikowania tego kodu?
Załóżmy, że mam metodę zdefiniowaną w dwóch różnych przestrzeniach nazw:
namespace foo
{
void print()
{
//do work...
}
}
namespace bar
{
void print()
{
//do work...
}
}
Thefoo::print()
ibar::print()
funkcje sąabsolutnie równy. Mój projekt wykorzystuje liczne wezwania tych funkcji.
Czy istnieje sposób na usunięcie jednego zprint()
definicjebez zmiany wywołań tych funkcji? Mam na myśli coś takiego jak poniżej (oczywiście język C ++ nie pozwala na taką konstrukcję,to tylko przykład):
namespace foo, bar //wrong code!
{
void print()
{
//do work...
}
}
Jeśli nie ma sposobu, aby zmienić kod tak, jak chcę, powiedz mi, czy podoba Ci się następująca decyzja? Czy będziesz zadowolony, jeśliTwój projekt zawiera taki kod? :)
namespace foo
{
void print()
{
//do work...
}
}
namespace bar
{
void print()
{
foo::print();
}
}
DODAJ:
Dziękuję wam, jestem w pełni zadowolony z waszych odpowiedzi. Chcę tylko wyjaśnić jedną chwilę: czy istnieje różnica międzyusing ::foo::print
iusing foo::print
?