Wofür namespaces in Visual C++ 6?

Hi Experten,

habe ich irgend einen Vorteil, wenn ich in Visual C++ 6 namespaces verwende?

Wie ich die namespaces verwende, ist mit (soweit ich das bisher überblicken kann) einigermaßen klar. Aber warum sollte ich sie verwenden?

Gruß
Uwe

Hallo Uwe,

also, wenn ich die Frage richtig verstehe, dann geht die um Namespaces in C++ allgemein und nicht nur in VC++ 6.0.

Namespaces benutze ich vor allem dann gerne, wenn ein Programmpaket sich aus mehreren Teilen zusammensetzt (organisatorisch), die nur über bestimmte Interfaces miteinander in Verbindung treten. Welche Klassen ich da sonst noch alles drin habe, muß jeman aus einem anderen Teilprojekt nicht interessieren.

Mit Namespaces kann ich so auf einer viel höheren Ebene als mit Klassen eine Strukturierung des Gesamtkonzepts aufhängen. Außerdem hat das enorme Vorteile, wenn man besagte Schnittstellen bekannt gibt (da sie von anderen benutzt werden) und dann nicht dauernd irgendwelche Header-Dateien 'rumschicken muß.

Chris

Namespaces werden auch gebraucht um die Klassen eindeutig zu benennen.

Es könnte ja sein, dass Du z.B. zwei Klassen mit dem Namen System hast.
Wenn da der Namespace nicht wäre, wäre das gar nicht möglich.

Gruss, Simon

Hi Experten,

habe ich irgend einen Vorteil, wenn ich in Visual C++ 6
namespaces verwende?

Wie ich die namespaces verwende, ist mit (soweit ich das
bisher überblicken kann) einigermaßen klar. Aber warum sollte
ich sie verwenden?

Namespaces sind ein Mittel zur Modularisierung, sie machen Module (Klassen,Funktionen) eindeutig. Früher hätte man zur Trennung folgendes verwendet:

modul1_foo();

In C++ kannst du stattdessen folgendes verwenden:

modul1::foo();

oder

using namespace modul1;


foo();

Zudem kannst du namespace aliase verwenden:

namespace modul1 = modul_zur_Datenverarbeitung;

Das hat den Vorteil, dass die Symbolnamen in den Bibliotheken/Objektdateien „sprechender“ werden. Zudem kannst du mehrere Varianten deiner Funktionen ablegen, und während der Compilation durch setzen des Aliasnamens die Ausprägung wählen.
Den wirklichen Sinn wirst du vermutlich erst sehen, wenn du auf diese Funktionalität angewiesen bist. Bis dahin scheint es als spielerei.
Laß dich davon aber nicht beirren, es handelt sich um ein wirklich mächtiges und einfach anzuwendenes Werkzeug.

Markus

Vielen Dank…
… für die guten Argumente. Dann werde ich mir wohl die Arbeit mit namespaces angewöhnen…

Gruß
Uwe