Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Navngivningskonventioner | Oprettelse af Første Skabelon
C++ Templates

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

main.cpp

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

main.cpp

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

main.cpp

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

question mark

Hvad kan indsættes i pladsholderne?

Vælg alle korrekte svar

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 5

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Navngivningskonventioner

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

main.cpp

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

main.cpp

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

main.cpp

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

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 1. Kapitel 5
some-alt