using und namespace
Namensräume sollen dem Programmierer helfen, bei gleichen
Namen
für Variablen, Klassen etc. Konflikte zu vermeiden.
Betrachten wir folgendes C++-Programm:
#include <iostream>
namespace MyCpp
{
double var;
}
float var;
int main()
{
int var;
std::cout << "globale variable :
"
<< ::var << std::endl; // 0
std::cout << "lokale
variable
: " << var
<<
std::endl;
std::cout << "variable im Namespace: " <<
MyCpp::var
<< std::endl; // 0
}
Hier wird drei
Mal eine Variable namens var ausgegeben. Die
Variable
innerhalb main() hat dort ihren begrenzten Scope
(Sichtbarkeitsbereich).
Um die globale Variable var aufzurufen, setzt man :: davor. Wir
können nun ebenfalls in einem eigenen Namensbereich (hier: MyCpp)
eine
Variable var erzeugen. Hierbei muss man diese Variable durch
Voranstellen
der Bezeichnung des Namensbereiches und den Operator :: ansprechen.
cout, cin, endl
gehören in den Namensbereich std. Daher wird
dieser Namen vorangestellt. Wollen Sie das vermeiden, gibt es zwei
Möglichkeiten:
a) Man gibt den
gesamten Namensbereich std durch using namespace std;
frei.
b) Man macht die
verwendeten Elemente des Namensbereiches std gezielt bekannt:
using
std::cout;
usw.