Naamgevingsconventies
Veeg om het menu te tonen
Goede en slechte naamgevingen
Net als bij variabelen kun je sjabloonparameters elke gewenste naam geven. Het volgen van naamgevingsconventies kan echter de leesbaarheid en het onderhoud van de code aanzienlijk verbeteren. Hier zijn enkele goede en slechte praktijken om te overwegen.
main.cpp
1234template<typename T> // <- Actually a good naming void myTemplate() { // Function implementation }
Je vraagt je misschien af waarom T als een betere naamkeuze wordt beschouwd dan Type, terwijl de laatste duidelijker lijkt. De reden is eenvoudig: T is een algemeen geaccepteerde conventie die staat voor Type. Het geeft direct aan dat de sjabloonparameter een type voorstelt, wat voor de meeste ontwikkelaars herkenbaar is. Het is ook gebruikelijk om U of V te gebruiken als T al in gebruik is.
Beschrijvende naamgeving
Wanneer er meerdere templateparameters zijn en hun doel niet direct duidelijk is, is het een goede gewoonte om beschrijvende namen te gebruiken met als prefix T.
main.cpp
1234template<typename TKey, typename TValue> void map() { // Function implementation }
Als je de documentatie van sommige templates bekijkt, zul je merken dat sommige ontwikkelaars een underscore (_) voor de typeparameter plaatsen om deze duidelijker te maken. Je kunt deze praktijk ook toepassen. Het belangrijkste is echter om consistentie te behouden in je codebase. Kies een naamgevingsstijl die je prettig vindt en houd je daaraan.
Class en typename
Zowel class als typename worden gebruikt in template-declaraties. Ze zijn in deze context uitwisselbaar.
main.cpp
12345template <class T> void first_template(T param) { /* ... */ } template <typename T> void second_template(T param) { /* ... */ }
Historisch gezien was het sleutelwoord class de enige optie voor het definiëren van templateparameters. Daarom kun je dit sleutelwoord tegenkomen in oudere code. Bij het maken van templates heeft het sleutelwoord typename echter vaak de voorkeur vanwege de duidelijkheid, dus zullen we dit gebruiken.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.