Namespaces in C++
- C++-Projekt besteht oft aus mehreren Quelldateien, die von mehreren
Entwicklern bearbeitet werden
- alle globalen Namen der verschiedenen Quelldateien gehören traditionell
demselben Namensbereich namespace an
- beim Linken zum Endprodukt gibt es oft Linkerfehler aufgrund von
Namenskonflikten (multiple definition of `symbol')
(Beispiel: Deklaration extern in Header-File, mehrfache globale
Definitionen von Variablen mit demselben Namen in Quelltext-Files)
- Einführung verschiedener Namensbereiche, z.B. auch für globale Namen,
macht Namensgebung planbar und verhindert Namenskonflikte
Grundsätzliche Vorgehensweise
- 1.
- Definieren eines Namensbereiches mit dem Schlüsselwort namespace
- 2.
- Zugriff auf Elemente eines Namensbereiches entweder explizit
(scope operator ::)
- 3.
- oder implizit nach using-Deklaration bzw.
using-Anweisung
(Unterschied!)