Mailinglist Archive: opensuse-programming-de (174 mails)

< Previous Next >
Re: C++ Namespace
  • From: Andre Heine <linux-experience@xxxxxxx>
  • Date: Mon, 12 Jan 2004 16:49:09 +0100
  • Message-id: <200401121649.09770.linux-experience@xxxxxxx>
Moin moin,

Am Monday 12 January 2004 11:15 schrieb Stefan Hundhammer:
> On Sunday 11 January 2004 21:19, Daniel Feist wrote:
> > Ich bin vor kurzem von C in C++ umgestiegen und habe folgende
> > Frage:
> >
> > Was hat es mit diesem "using namespace std"
>
> Tu's nicht!

Shit, muss ich alles wieder ändern ;(

> Sinn und Zweck von Namespaces ist es, genau das zu vermeiden. Man
> soll eben NICHT für alles und jedes stillschweigend davon
> ausgehen, daß es zur C++ -Standardbibiliothek gehört.

Grrrr, viele meiner Bücher benutzen das zuhauf' in main()!

> using namespace std;
>
> ist Schweinkram. Das gibt es eigentlich nur, um alten, kaputten
> Code am Laufen zu halten. Für neuen Code sollte man das tunlichst
> vermeiden.

Bislang habe ich "using namespace std" als feature benutzt, um eben
weniger zu tippen.

So, ich habe das mal nachgelesen und Ihr habt natürlich Recht!

-----C++ Einführung in die professionelle Programmierung, S. 422----

Um Namenskonflikte zu vermeiden, ist es grundsätzlich
empfehlenswert, für ein Projekt Namespaces zu definieren und zu
benutzen. Besonders wichtig ist dies beim Schreiben von
Bibliotheken. Bei der Benutzung sollte die selektive Auswahl wie
etwa bei "std::cout" bevorzugt werden. In Header- und
Implementierungsdateien für Klassen sollte "using namespace std;"
vermieden werden, damit Benutzer dieser Klassen nicht
gezwungenermaßen "std erben". In main()- Dateien ist die Verwendung
hingegen unproblematisch.

---------------------------------------------

Puuuh, da habe ich ja wiedermal Glück, wonaders als in main()
benutze ich das nicht.

Danke für die Erläuterungen...

Andre


< Previous Next >