Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Namngivningskonventioner | Skapa Första Mall
C++-Mallar

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

main.cpp

1234
template<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

main.cpp

1234
template<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

main.cpp

12345
template <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.

question mark

Vad kan passa i platshållarna?

Välj alla rätta svar

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 1. Kapitel 5

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

Avsnitt 1. Kapitel 5
some-alt