Templates

Templates ermöglichen generischen Code in C++. Funktionen und Klassen können unabhängig vom Datentyp definiert werden, um Wiederverwendbarkeit und Typsicherheit zu gewährleisten.

1. Funktions-Templates

Ein Funktions-Template definiert eine generische Funktion, die mit beliebigen Typen arbeiten kann.
template <typename T>
T max(T a, T b) {
    return (a > b) ? a : b;
}

int main() {
    std::cout << max(3, 7) << std::endl;       // int
    std::cout << max(3.5, 2.1) << std::endl; // double
    return 0;
}

2. Klassen-Templates

Klassen-Templates definieren generische Klassen, die für unterschiedliche Datentypen instanziiert werden können.
template <typename T>
class Speicher {
private:
    T daten;
public:
    Speicher(T wert) : daten(wert) {}
    T get() { return daten; }
};

int main() {
    Speicher<int> si(42);
    Speicher<double> sd(3.14);

    std::cout << si.get() << std::endl;
    std::cout << sd.get() << std::endl;
    return 0;
}

3. Best Practices

4. Zusammenfassung