Basic Syntax of Templates in C++
Swipe um das Menü anzuzeigen
Das Erstellen einer Vorlage ist tatsächlich ziemlich einfach und gehört zu den unkompliziertesten Aspekten ihrer Verwendung. Zunächst muss entweder eine Funktion oder eine Klasse erstellt werden. Wir beginnen mit der Funktion.
main.cpp
123456void MyFirstTemplate() { } int main() { MyFirstTemplate(); }
Wie zu sehen ist, handelt es sich um eine sehr einfache Funktion, die derzeit noch nichts macht. Sie kann problemlos innerhalb der Funktion main aufgerufen werden. Die Aufgabe besteht nun darin, sie in eine Vorlage umzuwandeln.
template.h
123456789101112// To create a template, you need to add code above the function or class // Start with the keyword `template` to indicate you're defining a template // template // Add angle brackets `<>`, this is list of the parameters for template // template < > // Inside of it has to be keyword `typename` and the name of it // template <typename Name> template <typename Name> void MyFirstTemplate() { }
Nun lassen wir sie etwas tun, zum Beispiel eine Nachricht ausgeben. Rufen Sie sie in der Hauptfunktion auf, um sie in Aktion zu sehen.
main.cpp
123456789101112#include <iostream> template<typename Name> void MyFirstTemplate() { std::cout << "c<>definity" << std::endl; } int main() { MyFirstTemplate(); }
Wie Sie sehen, tritt ein Fehler auf, wenn Sie versuchen, sie wie eine normale Funktion aufzurufen. Dies geschieht, weil es nicht mehr nur eine einfache Funktion ist. An dieser Stelle wird der im spitzen Klammern nach dem Schlüsselwort template angegebene Template-Parameter entscheidend.
main.cpp
12345678910111213#include <iostream> // This essentioally creates an alias for a type you will use template<typename Name> // In this case the name of the type is Name void MyFirstTemplate() { std::cout << "c<>definity" << std::endl; } int main() { // In order to call the template function properly // You need to specify any type inside the brackets MyFirstTemplate<void>(); // This tells the template to use void as the type for Name }
Für dieses Beispiel spielt es keine Rolle, welchen Typ Sie angeben, daher können Sie void durch jeden gewünschten Typ ersetzen. Die Angabe des Typs ist jedoch zwingend erforderlich.
Für die Funktionsvorlage MyFirstTemplate ist es nicht notwendig, einen Namen für den Typ-Parameter anzugeben. Sie können Name entfernen und alles funktioniert weiterhin, da der Typ-Parameter innerhalb der Funktion nicht verwendet wird.
Danke für Ihr Feedback!
Fragen Sie AI
Fragen Sie AI
Fragen Sie alles oder probieren Sie eine der vorgeschlagenen Fragen, um unser Gespräch zu beginnen