Beruflich Dokumente
Kultur Dokumente
Namensräume in C++
Einführung
Die Schlüsselworte using namespace weisen den Compiler an, den Namensraum der
C++ Standardbibliothek (std) zu nutzen. Im nachfolgenden Programm kann nun auf
die Spezifizierung des Namensraumes verzichtet werden, wenn man auf einen Bezeichner
der Standardbibliothek zurückgreifen möchte. Es reicht dann aus
statt
zu schreiben. Gründe für die Einführung von Namensräumen sind die Zusammenfassung
von Bezeichnern in Gruppen sowie die Vermeidung von Namenskonflikten, die bei der
Zusammenarbeit mehrerer Programmierer oder der Nutzung von Bibliotheken auftreten
können. Durch Abgrenzung mit Namensräumen kann dies verhindert werden.
Mit Namensräumen kann ein Autor große Programmpakete mit vielen de-
finierten Namen schreiben, ohne sich Gedanken machen zu müssen, ob die
neu eingeführten Namen in Konflikt zu anderen Namen stehen. Im Gegen-
satz zu der Situation ohne Namensräume wird hier nicht der ganze Name neu
eingeführt, sondern nur ein Teil des Namens, nämlich der des Namensraumes.
Ein Namensraum ist ein deklaratorischer Bereich, der einen zusätzlichen
Bezeichner an jeden Namen anheftet, der darin deklariert wurde. Dieser
zusätzliche Bezeichner macht es weniger wahrscheinlich, dass ein Namens-
konflikt auftritt mit Namen, die anderswo im Programm deklariert wurden.
Es ist möglich den gleichen Namen in unterschiedlichen Namensräumen ohne
1
Einführung in das Programmieren(für Ingenieeure), Themenblatt Namensräume
Konflikt zu verwenden, auch wenn der gleiche Name in der gleichen Über-
setzungseinheit vorkommt. Solange sie in unterschiedlichen Namensräumen
erscheinen, ist jeder Name eindeutig aufgrund des zugefügten Namensraum-
bezeichners.1
#include <iostream>
namespace otto
{
int zahl = 2;
}
namespace hans
{
int zahl = 4; // Gleicher Bezeichner wie oben!
}
int main()
{
cout << "2 + 4 = " << otto::zahl + hans::zahl << endl;
return 0;
}
1
http://de.wikipedia.org/wiki/Namespace