8. Namespace
  • Zur Verhinderung von Namenskollisionen lassen sich "namespaces" definieren.
  • Namespaces sind keine Klassen, aber Klassen bilden einen eigenen Namespace.
  • mit der folgenden Anweisung definiert man einen Namespace

       namespace NAME { ... }

    Wenn man auf ein Objekt des Namespaces zugreifen will, muß man den Scope-Operator einsetzen:

       NAME::variable;
  • Wenn eine Variable in den lokalen Namespace übernommen werden soll, kann dies mit dem Schlüsselwort "using" geschehen:

       using Name::variable;

    Wenn alle Namen eines Namensraums übernommen werden sollen:

       using namespace NAME;


    Alle Klassen der Standardbibliotheken liegen im Namespace "std".
  • Namspace sind kumulativ - sprich können mehrfach benutzt werden.
  • Mit der Zuweisung:

       namespace ALIAS = eigentlicherNameFuerDenNamespace;

    wird ein Alias gesetzt.
  • Ein namensloser Namespace ist Namespace, inkl Using und beschränkt die Gültigkeit der globalen Variablen auf die aktuelle Übersetzungseinheit (Datei).