Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Nimikäytännöt | Ensimmäisen Templaten Luominen
C++-Template-Luokat

Nimikäytännöt

Pyyhkäise näyttääksesi valikon

Hyvät ja huonot nimeämistavat

Kuten muuttujille, myös malliparametreille voi antaa minkä tahansa nimen. Nimeämiskäytäntöjen noudattaminen parantaa kuitenkin huomattavasti koodin luettavuutta ja ylläpidettävyyttä. Tässä joitakin hyviä ja huonoja käytäntöjä pohdittavaksi.

main.cpp

main.cpp

1234
template<typename T> // <- Actually a good naming void myTemplate() { // Function implementation }

Saatat miettiä, miksi T on parempi nimeämisvaihtoehto kuin Type, vaikka jälkimmäinen vaikuttaa selkeämmältä. Syynä on se, että T on laajasti hyväksytty käytäntö, joka tarkoittaa Type. Se ilmaisee heti, että malliparametri edustaa tyyppiä, mikä on useimmille kehittäjille tuttua. Myös U tai V ovat yleisiä, jos T on jo käytössä.

Kuvailevat nimet

Kun käytössä on useita malliparametreja eikä niiden tarkoitus ole heti ilmeinen, on hyvä käytäntö käyttää kuvailevia nimiä, jotka alkavat T-kirjaimella.

main.cpp

main.cpp

1234
template<typename TKey, typename TValue> void map() { // Function implementation }

Jos tarkastelet joidenkin mallien dokumentaatiota, saatat huomata, että jotkut kehittäjät lisäävät alaviivan (_) tyyppiparametrin eteen tehdäkseen siitä erottuvamman. Voit ottaa tämän käytännön käyttöön myös itse. Tärkeintä on kuitenkin säilyttää johdonmukaisuus koko koodipohjassa. Valitse nimeämistyyli, josta pidät, ja pysy siinä.

Class ja typename

Sekä class että typename käytetään mallipohjien määrittelyissä. Ne ovat vaihdettavissa keskenään tässä yhteydessä.

main.cpp

main.cpp

12345
template <class T> void first_template(T param) { /* ... */ } template <typename T> void second_template(T param) { /* ... */ }

Historiallisesti class-avainsana oli ainoa vaihtoehto malliparametrien määrittelyyn. Tämän vuoksi saatat törmätä tähän avainsanaan vanhemmassa koodissa. Nykyään mallien luomisessa suositaan kuitenkin usein typename-avainsanaa selkeyden vuoksi, joten käytämme sitä.

question mark

Mitä paikkamerkkeihin voisi tulla?

Valitse kaikki oikeat vastaukset

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 5

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 1. Luku 5
some-alt