using namespace std oder nicht?



  • Hallo liebe C++ Community,
    folgende Frage:
    Ich sehe hier im Forum immer, dass ihr std::cout anstatt einmal den namespace std sichtbar zu machen und dann nur cout zu benutzen. Aber warum? 😕



  • Ich glaube da werden sich viele streiten. Aber schau mal nach Namensräumen bei google. Vielleicht wird es dir dann besser klar.

    edit:

    "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. "

    Für kleine Projekte wird es natürlich kein Problem sein, aber man sollte sich am Anfang gar nicht erst angewöhnen, denke ich.



  • Lies mal hier bei "using-Deklaration" und "using-Direktive".

    Dann wirds dir vielleicht klarer.



  • Yoyo2000 schrieb:

    Ich sehe hier im Forum immer, dass ihr std::cout anstatt einmal den namespace std sichtbar zu machen und dann nur cout zu benutzen. Aber warum? 😕

    Der Sinn der Namensräume ist es Namenskonflikte zu vermeiden. "using namespace" ist an sich nicht schlimm, sollte aber niemals in Headern verwendet werden (Wodurch der Namensraum global entleert wird).

    Im Forum hat das std:: noch einen weiteren Grund: Damit sehen auch Anfänger in welchen Namensraum etwas liegt (zumal Anfänger gerne die Trennung Header/Source ignorieren, und später damit Probleme bekommen könnten). Zudem sollte man wie gesagt etwas mit der Verwendung aufpassen.

    Ich selbst verwende "using namespace" in der Regel nur dann, wenn ich in einer Sourcedatei wirklich viele Ausdrücke aus einem Namensraum verwende.




Anmelden zum Antworten