Wofür steht "using namespace std;"?
Hallo
ich muss ein Programm erklären in c++.
Ich habe using namespace std; benutzt und würde gerne genau wissen was es bringt und wofür es steht.
3 Antworten
Normalerweise müsstest Du bei Methoden wie cin und cout immer dazu schreiben, dass sie zu std gehören. Bei einem sehr I/O-intensiven Programm ist das ziemlich lästig und verschlechtert eher die Lesbarkeit. Zumal wohl jedem c++-Programmierer klar ist, was diese Methoden tun und wo sie herkommen.
Faustregel ist also: Nutze dieses using namespace immer für die Klasse, die am häufigsten für statische Methoden gebraucht wird. Und das wird halt sehr häufig genau std sein.
Da nicht auszuschließen ist, dass zwei unabhängig voneinander entstandene Quelltexte die gleichen Namen verwenden, wurde in C++ der Namensraum eingeführt. Damit können Deklarationen und Definitionen unter einem Namen zusammengefasst und gegen andere Namen abgegrenzt werden.
Mit den Namespaces verhält es sich prinzipiell wie mit Adressen. Sie sind ein Wegweiser (in dem Fall für Compiler und Programmierer) um an einen bestimmten Typ, eine bestimmte Funktion oder sonstiges zu kommen, sowie man mit Postleitzahl und Straße/Hausnummer eine bestimmte Person/Familie adressieren kann.
Der Namensraum std wird hierdurch quasi 'aufgelöst' und alles aus dem Namensraum in den lokalen Namensraum gezogen. (vereinfachte Erklärung)
Formaler liest sich das dann zum Beispiel so:
https://en.cppreference.com/w/cpp/language/namespace#Using-directives