Namespaces, std und Bibliotheken in C++

In dieser Lektion werden Namespaces, die Standardbibliothek std, Ein-/Ausgabe über iostream und der Einsatz von Bibliotheken in C++ erklärt.

1. Namespaces – Grundidee

Ein Namespace ist ein Namensraum, der Bezeichner (Variablen, Funktionen, Klassen) gruppiert, um Namenskollisionen zu vermeiden.
namespace Mathematik {
    int add(int a, int b) { return a + b; }
}

int main() {
    int sum = Mathematik::add(2,3);
}
Namespaces verhindern Konflikte zwischen gleichnamigen Funktionen oder Variablen in großen Projekten.

2. Die Standardbibliothek std

Die Standardbibliothek C++ bündelt grundlegende Klassen, Funktionen und Objekte. Alle befinden sich im Namespace std.
#include <iostream>
#include <string>

int main() {
    std::string name = "Ismail";
    std::cout << "Hallo " << name << std::endl;
}

3. Using-Declaration

Um std:: nicht immer schreiben zu müssen, kann man using einsetzen.
#include <iostream>
using std::cout;
using std::endl;

int main() {
    cout << "Hallo Welt!" << endl;
}
Generell using namespace std; vermeiden in Header-Dateien großer Projekte, um Namenskollisionen zu verhindern.

4. Einbinden von Bibliotheken

Bibliotheken erweitern C++-Programme mit vorgefertigten Funktionen, Klassen und Algorithmen.
#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<int> v = {3,1,4};
    std::sort(v.begin(), v.end());
    for(int n : v) std::cout << n << " ";
}

5. Unterschied: Header vs. Bibliothek

Header: Enthalten Deklarationen (Interfaces) Bibliothek: Enthält implementierten Code, der gelinkt wird
#include <cmath>   // Header
double w = std::sqrt(9.0);   // Funktion aus Bibliothek

6. Zusammenfassung