Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Übersicht | Templatespezialisierung
C++-Vorlagen
course content

Kursinhalt

C++-Vorlagen

C++-Vorlagen

1. Erstellen der Ersten Vorlage
2. Verwendung von Templates
3. Klassenvorlagen
4. Templatespezialisierung

book
Übersicht

Templates ermöglichen es Entwicklern, generischen und wiederverwendbaren Code zu erstellen, was die Flexibilität und Wartbarkeit von Programmen erheblich verbessert. Dieser Überblick fasst die wichtigsten Konzepte und Abschnitte des Kurses zusammen.

Erstellung von Templates

Die Syntax zur Erstellung eines Templates umfasst das Schlüsselwort template, gefolgt von Template-Parametern, die in spitzen Klammern eingeschlossen sind. Unten ist ein Beispiel für eine grundlegende Template-Funktion, die keine Parameter benötigt.

h

template

copy
12
template<typename> void SimpleTemplate() {}

Templates und Parameter

Templates können auch Parameter akzeptieren, was sie vielseitiger macht. Hier zeigen wir, wie man eine Template-Funktion erstellt, die einen einzelnen Parameter eines generischen Typs T annimmt. Dies ermöglicht es der Funktion, mit jedem Datentyp zu arbeiten, der während der Instanziierung bereitgestellt wird.

h

single_parameter

h

multiple_parameters

copy
12
template<typename T> void SimpleTemplate(T value) {}

Klassentemplates

Templates können auch auf Klassen angewendet werden, was die Erstellung von Klassendefinitionen ermöglicht, die parametrisiert sind. Das folgende Beispiel zeigt, wie man ein Klassentemplate erstellt, das einen Wert eines generischen Typs T speichert und einen Konstruktor zur Initialisierung enthält:

h

class_template

copy
1234567
template<typename T> class ClassTemplate { private: T value; public: ClassTemplate(T value) : value(value) {} };

Templatespezialisierung

Die Templatespezialisierung ermöglicht die Erstellung spezifischer Implementierungen eines Templates für bestimmte Datentypen. Dies ist nützlich, wenn eine generische Implementierung nicht ausreicht oder wenn spezielles Verhalten erforderlich ist. Das folgende Beispiel zeigt, wie eine Template-Funktion für verschiedene Datentypen, einschließlich int, bool und std::string, spezialisiert wird:

h

specialization

copy
1234567891011
template <typename T> void Template(const T& value) { /* ... */ } // Any Type template <> void Template<int>(const T& value) { /* ... */ } // For `int` template <> void Template<bool>(const T& value) { /* ... */ } // For `bool` template <> void Template<std::string>(const T& value) { /* ... */ } // For `std::string`
Den Kurs beenden?

Den Kurs beenden?

Wählen Sie die richtige Antwort aus

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 4. Kapitel 5
We're sorry to hear that something went wrong. What happened?
some-alt