Navngivningskonventioner
Stryg for at vise menuen
Gode og dårlige navngivninger
Ligesom variabler kan du navngive template-parametre, som du ønsker. At følge navngivningskonventioner kan dog i høj grad forbedre læsbarheden og vedligeholdelsen af koden. Her er nogle gode og dårlige praksisser at overveje.
main.cpp
1234template<typename T> // <- Actually a good naming void myTemplate() { // Function implementation }
Du undrer dig måske over, hvorfor T anses for at være et bedre navnevalg end Type, selvom det sidste virker mere tydeligt. Årsagen er enkel: T er en bredt accepteret konvention, der står for Type. Det indikerer straks, at template-parameteren repræsenterer en type, hvilket er velkendt for de fleste udviklere. Det er også almindeligt at bruge U eller V, hvis T allerede er anvendt.
Beskrivende navngivning
Når du har flere template-parametre, og deres formål ikke er umiddelbart indlysende, er det god praksis at bruge beskrivende navne med prefixet T.
main.cpp
1234template<typename TKey, typename TValue> void map() { // Function implementation }
Hvis du kigger i dokumentationen for nogle templates, vil du måske bemærke, at nogle udviklere tilføjer en underscore (_) før typeparameteren for at gøre den mere tydelig. Du kan også vælge denne praksis. Det vigtigste er dog at opretholde konsistens i hele din kodebase. Vælg en navngivningsstil, du foretrækker, og hold dig til den.
Class og typename
Både class og typename bruges i template-deklarationer. De kan anvendes om hinanden i denne sammenhæng.
main.cpp
12345template <class T> void first_template(T param) { /* ... */ } template <typename T> void second_template(T param) { /* ... */ }
Historisk set var nøgleordet class den eneste mulighed for at definere template-parametre. Derfor kan du støde på dette nøgleord i ældre kode. Når man opretter templates, foretrækkes dog ofte nøgleordet typename for dets tydelighed, så det vil vi benytte.
Tak for dine kommentarer!
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat