Załóżmy mam ogłoszony funkcji (lub klasy, nie ma znaczenia) w pliku nagłówka, który jest częścią przestrzeni nazw foo:Najlepsze praktyki: używanie przestrzeni nazw lub ponowne otwieranie przestrzeni nazw?
namespace foo
{
void bar();
…
}
Przez długi czas byłem znoszące nazw kiedy było określenie funkcji w pliku cpp:
namespace foo
{
void bar()
{
doSomething();
…
}
}
to dlatego, że nauczyłem się to w ten sposób i to było używane w projekcie byłem w pracy. Tak naprawdę nigdy nie chociaż o tym dopiero niedawno, gdy natknąłem się na projekt, który korzystał z wykorzystaniem dyrektywę zamiast:
using namespace foo;
void bar()
{
doSomething();
…
}
Wreszcie istnieje możliwość korzystania z pełnej nazwy. Uważam to za dość nudne, zwłaszcza gdy zaangażowane są zajęcia z udziałem wielu członków. Moim zdaniem nie ma większego sensu, gdy cała zawartość pliku jest częścią jednego obszaru nazw.
void foo::bar()
{
doSomething();
…
}
Moje pytanie brzmi, który z nich powinien być preferowany i dlaczego? Szczególnie w odniesieniu do dwóch pierwszych opcji (użycie dyrektywy vs. ponowne otwarcie przestrzeni nazw).
Powiedziałbym, że to kwestia osobistych preferencji.Sam używam mieszanki zarówno pierwszej, jak i ostatniej alternatywy. –
Zgadzam się, że jest to kwestia osobistych preferencji. 'foo :: bar' jest powtarzalne, ale możliwe do pomylenia, chociaż może to być nieistotne, jeśli ludzie szukają tylko Twojego źródła za pomocą IDE. –
To tak, jakby pytać, czy lepiej używać kart lub 4 spacji. ** Nie marnuj małych rzeczy. ** :) – LihO