Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Convenzioni di denominazione | Creazione del Primo Template
Template C++

Convenzioni di denominazione

Scorri per mostrare il menu

Buone e cattive convenzioni di denominazione

Come per le variabili, è possibile assegnare qualsiasi nome ai parametri di template. Tuttavia, seguire le convenzioni di denominazione può migliorare notevolmente la leggibilità e la manutenibilità del codice. Di seguito sono riportate alcune buone e cattive pratiche da considerare.

main.cpp

main.cpp

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

Potresti chiederti perché T sia considerata una scelta di denominazione migliore rispetto a Type, anche se quest'ultima sembra più chiara. Il motivo è semplice: T è una convenzione ampiamente accettata che sta per Type. Indica immediatamente che il parametro del template rappresenta un tipo, cosa familiare alla maggior parte degli sviluppatori. È anche comune utilizzare U o V se T è già stato utilizzato.

Nomi descrittivi

Quando si hanno più parametri di template e il loro scopo non è immediatamente evidente, è buona pratica utilizzare nomi descrittivi con il prefisso T.

main.cpp

main.cpp

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

Consultando la documentazione di alcuni template, si può notare che alcuni sviluppatori aggiungono un underscore (_) prima del parametro di tipo per renderlo più distintivo. È possibile adottare anche questa pratica. Tuttavia, l'aspetto più importante è mantenere la coerenza in tutto il codice. Scegliere uno stile di denominazione preferito e mantenerlo.

Class e typename

Sia class che typename sono utilizzati nelle dichiarazioni di template. In questo contesto sono intercambiabili.

main.cpp

main.cpp

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

Storicamente, la parola chiave class era l'unica opzione disponibile per definire i parametri dei template. Di conseguenza, è possibile incontrare questa parola chiave in codice più datato. Tuttavia, nella creazione dei template, la parola chiave typename è spesso preferita per la sua chiarezza, quindi verrà utilizzata.

question mark

Cosa potrebbe essere inserito nei segnaposto?

Seleziona tutte le risposte corrette

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 5

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 1. Capitolo 5
some-alt