cpp / beginner
Snippet
Namespaces verstehen
Namespaces organisieren Code in benannten Bereichen und verhindern Namenskonflikte. Der std-Namespace enthält cout und andere Standard-Bibliothekselemente. Hier erstellen wir zwei benutzerdefinierte Namespaces (school und sports), die beide eine studentCount-Variable definieren, ohne Konflikte zu verursachen. Verwende den Bereichsauflösungsoperator (::), um auf Namespace-Mitglieder zuzugreifen, oder 'using namespace', um alle Mitglieder in den aktuellen Bereich zu bringen.
snippet.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>namespace school {int studentCount = 25;void printInfo() {std::cout << "School has " << studentCount << " students" << std::endl;}}namespace sports {int studentCount = 15;void printInfo() {std::cout << "Sports club has " << studentCount << " members" << std::endl;}}int main() {school::printInfo();sports::printInfo();using namespace school;std::cout << "Direct access: " << studentCount << std::endl;return 0;}
Erklärung
1
namespace school {
Beginnt einen Namespace-Block namens 'school' um verwandten Code zu gruppieren
2
int studentCount = 25;
Variable innerhalb des school-Namespace
3
school::printInfo();
Ruft printInfo aus dem school-Namespace über den Bereichsauflösungsoperator auf
4
sports::printInfo();
Ruft printInfo aus dem sports-Namespace auf - gleicher Funktionsname, unterschiedlicher Namespace
5
using namespace school;
Bringt alle school-Namespace-Mitglieder in den aktuellen Bereich für direkten Zugriff