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.