Die Sprache C++ unterscheidet fünf verschiedene Bezugsrahmen
1. Datei
2. Lokal
3. Funktion
4. Klasse
5. Namensraum
*.cc
und *.h
. Bei ungewollten Namenskonflikten
besteht die Möglichkeit die entsprechende Funktion static zu
deklarieren. Ansonsten die Möglichkeit mit extern eine
``gewollten'' Namenskonflikt zu kennzeichnen
goto label; { // hier eingefuehrte Variablen sind lokal // dieser Block hilft evtl. dem Compiler } label:
Eine Alternative zu Variablen mit Filebezugsrahmen sind lokale Variablen in Funktionen, die static deklariert sind. Sie haben einen lokalen Bezugsrahmen, aber eine Lebensdauer, die über den Funktionsaufruf hinausgeht.
->name
oder für static
Variablen Klassenname::name
angesprochen. Static
Variablen existieren unabhängig von der Instanzbildung nur einmal
für die ganze Klasse, d.h. alle Objekte/Instanzen einer Klasse
teilen sich eine Variable oder Funktion
namespace Name{...}
oder importiert diese Teile mit using
Direktiven.
namespace Name{ .... }
Durch using Direktiven kann man einzelne Elemente oder auch einen ganzen Namensraum ``importieren'', d.h. auf seine Elemente zugreifen ohne explizit anzugeben, in welchem Namensraum sie sich befinden. Allerdings kann man so nur einen Namensraum importieren.