Namespaces

Verwenden der Namespace-Zusammensetzung

Best Practice in der Programmierung schlägt vor, neue Daten oder Funktionalität in einem vernünftig benannten, eindeutigen Namespace zu sequestrieren, wann immer dies möglich ist. Dies wird als Vorteil gegenüber dem Dumping von allem im globalen Namespace angesehen, da dann die Namenssuche explizit aktiviert oder deaktiviert werden kann wie oben, Symbole werden konsistent ohne wiederholte Namenspräfixe oder Makros usw. verzerrt.

Betrachten Sie beispielsweise ein Projekt, das die meisten seiner Klassen in namespace gtk definiert. Es ist möglich, namespace gtk an namespace std anzupassen, indem ein C++-Feature namensnamespace composition . Dies geschieht, wenn eine using-Deklaration in eine Namespace-Definition eingefügt wird: Die importierten Symbole werden in die aktuell aktiven Namespaces importiert. Zum Beispiel:

namespace gtk{ using std::string; using std::tr1::array; class Window { ... };}

In diesem Beispiel wird std::string innamespace gtk importiert. Das Ergebnis ist, dass die Verwendung vonstd::string innerhalb des Namespace gtk einfach string ohne die explizite qualification.As ein zusätzlicher Bonus, std::string wird nicht in den globalen Namespace importiert. Zusätzlich kann eine aufwändigere Anordnung für Abwärtskompatibilität und Portabilität getroffen werden, wobei dieusing -Deklarationen in Makros verpackt werden können, die basierend auf Autoconf-Tests entweder auf „“ oder dh using std::string; (abhängig davon, ob das System hatlibstdc++ in std:: oder nicht). (ideen von Bellewelly und Karl Nelson)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.

Previous post Das goldene Zeitalter des Fernsehens ist vorbei
Next post Periode-Tracking-Apps sind nicht für Frauen