Namngivningskonventioner
Svep för att visa menyn
Bra och dåliga namngivningar
Precis som variabler kan du namnge mallparametrar vad du vill. Att följa namngivningskonventioner kan dock avsevärt förbättra kodens läsbarhet och underhållbarhet. Här är några bra och dåliga metoder att tänka på.
main.cpp
1234template<typename T> // <- Actually a good naming void myTemplate() { // Function implementation }
Du kanske undrar varför T anses vara ett bättre namnval än Type, även om det senare verkar tydligare. Anledningen är enkel: T är en allmänt accepterad konvention som står för Type. Det visar direkt att mallparametern representerar en typ, vilket är bekant för de flesta utvecklare. Det är också vanligt att använda U eller V om T redan har använts.
Beskrivande namngivning
När du har flera mallparametrar och deras syfte inte är direkt uppenbart, är det en god praxis att använda beskrivande namn med prefixet T.
main.cpp
1234template<typename TKey, typename TValue> void map() { // Function implementation }
Om du tittar i dokumentationen för vissa mallar kan du märka att vissa utvecklare lägger till ett understreck (_) före typ-parametern för att göra den mer distinkt. Du kan också använda denna praxis. Det viktigaste är dock att vara konsekvent i hela kodbasen. Välj en namngivningsstil som du föredrar och håll dig till den.
Class och typename
Både class och typename används i mall-deklarationer. De är utbytbara i detta sammanhang.
main.cpp
12345template <class T> void first_template(T param) { /* ... */ } template <typename T> void second_template(T param) { /* ... */ }
Historiskt sett var nyckelordet class det enda alternativet för att definiera mallparametrar. Därför kan du stöta på detta nyckelord i äldre kod. När man skapar mallar föredras dock ofta nyckelordet typename för dess tydlighet, så vi kommer att använda det.
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal