Namespaces und C-Namenspräfixe
C++-Namespaces schaffen Gültigkeitsbereiche; C-Bibliotheken präfixieren öffentliche Namen.
Was ist Namespaces und C-Namenspräfixe?
C++-Namespaces schaffen Gültigkeitsbereiche; C-Bibliotheken präfixieren öffentliche Namen.
Verhindere Symbolkonflikte in großen Programmen.
Wichtige Punkte
- Verstehe zuerst den C-Mechanismus.
- Drücke Ownership durch RAII und Wertsemantik aus.
- Bevorzuge typsichere Abstraktionen gegenüber Makros und Casts.
Codebeispiele in C und C++
main.c
#include <stdio.h>
int math_square(int value) {
return value * value;
}
int main(void) {
printf("%d\n", math_square(7));
}
49
main.cpp
#include <iostream>
namespace math {
int square(int value) {
return value * value;
}
}
int main() {
std::cout << math::square(7) << '\n';
}
49
Vergleich zwischen C und C++
Ein C-Präfix ist Konvention, ein C++-Namespace wird vom Compiler durchgesetzt und unterstützt Aliase sowie qualifizierte Suche.
C
C nutzt Namenskonventionen, Callbacks, Makros und Kontextstrukturen.
C++
Sprachfeatures liefern bereichsgebundene, typsichere Abstraktionen.
Übungsaufgaben
Führe beide Versionen aus und untersuche die unterschiedlichen Garantien.
- Implementiere zuerst den C-Mechanismus.
- Ersetze manuelles Cleanup durch RAII.
- Prüfe zusätzliche Allokationen und virtuellen Dispatch.