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.
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;
}
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;
}
typename und template sauber dokumentieren