Kursinhalt
C++-Vorlagen
C++-Vorlagen
Grundsyntax von Templates in C++
Ein Template zu erstellen ist tatsächlich ganz einfach, und es ist einer der einfachsten Teile der Nutzung. Um zu beginnen, müssen Sie entweder eine Funktion oder eine Klasse erstellen. Wir beginnen mit der Funktion.
main
void MyFirstTemplate() { } int main() { MyFirstTemplate(); }
Wie Sie sehen können, gibt es eine sehr einfache Funktion, die momentan nichts tut. Wir können sie leicht innerhalb der main
Funktion aufrufen. Ihre Aufgabe ist es nun, sie in ein Template zu verwandeln.
template
// 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 Sie es etwas tun, wie zum Beispiel eine Nachricht ausgeben. Rufen Sie es in der Hauptfunktion auf, um es in Aktion zu sehen.
main
#include <iostream> template<typename Name> void MyFirstTemplate() { std::cout << "c<>definity" << std::endl; } int main() { MyFirstTemplate(); }
Wie Sie sehen können, tritt ein Fehler auf, wenn wir versuchen, es aufzurufen, als wäre es eine einfache Funktion. Dies liegt daran, dass es nicht mehr nur eine einfache Funktion ist. Hier kommt der Template-Parameter ins Spiel, der in den Klammern nach dem Schlüsselwort template
angegeben wird.
main
#include <iostream> // This essentioally creates an alias for a type we will use template<typename Name> // In our 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 // We need to specify any type inside the brackets MyFirstTemplate<void>(); // This tells the template to use void as the type for Name }
Hinweis
Es spielt keine Rolle, welchen Typ Sie für dieses Beispiel angeben, daher können Sie
void
in jeden beliebigen Typ ändern. Das Angeben des Typs ist jedoch obligatorisch.
Für die MyFirstTemplate
Funktionsvorlage ist es nicht notwendig, einen Namen für den Typ-Parameter anzugeben. Sie können Name
entfernen, und alles wird weiterhin funktionieren, da der Typ-Parameter innerhalb der Funktion nicht verwendet wird.
Danke für Ihr Feedback!