Angenommen, ich habe eine Funktion deklariert (oder Klasse, spielt keine Rolle) in einer Header-Datei, die einen Teil von Namespace foo ist:Best Practices: Namespace verwenden oder Namespace erneut öffnen?
namespace foo
{
void bar();
…
}
Für eine lange Zeit, die ich die Namespace Wiedereröffnung habe, als ich die Funktion in einer CPP-Datei wurde die Definition:
namespace foo
{
void bar()
{
doSomething();
…
}
}
das ist, weil ich es auf diese Weise gelernt und es wurde in einem Projekt, das ich arbeite verwendet. Ich habe nie wirklich obwohl darüber, bis vor kurzem, als ich auf ein Projekt gestolpert, die stattdessen das using-Direktive verwendet:
using namespace foo;
void bar()
{
doSomething();
…
}
Endlich gibt es eine Möglichkeit, den vollständigen Namen verwenden. Ich finde es ziemlich langweilig, besonders wenn Klassen mit vielen Mitgliedern involviert sind. Meiner Meinung nach macht es wenig Sinn, wenn der gesamte Inhalt der Datei Teil eines Namensraums ist.
void foo::bar()
{
doSomething();
…
}
Also meine Frage ist, welche sollte bevorzugt werden und warum? Vor allem in Bezug auf die ersten beiden Optionen (mit dem Namespace directory vs. reopen).
Ich würde sagen, es ist eine Frage des persönlichen Geschmacks ist.Ich selbst verwende eine Mischung aus den ersten und letzten Ihrer Alternativen. –
Ich stimme zu, dass es eine persönliche Vorliebe ist. 'foo :: bar' ist repetitiv, aber übergreifbar, obwohl das irrelevant ist, wenn die Leute Ihre Quelle immer nur mit einer IDE suchen. –
Es ist wie die Frage, ob es besser ist, Tabulatoren oder 4 Leerzeichen zu verwenden. ** Schweiß nicht die kleinen Sachen. ** :) – LihO