Esercizi Pratici: Template
Abbiamo compreso che il polimorfismo a compile-time (tramite Template) ti regala performance e versatilità spaventose. Chiudiamo il capitolo applicando quanto imparato.
Esercizio 1: Genericizzare la Banca
Section titled “Esercizio 1: Genericizzare la Banca”Nel Capitolo 5 hai implementato una Bank che lavorava per forza di cose con identificativi di conto di tipo long. E se una banca volesse usare std::string o altri tipi (come int o enumeratori) come chiavi per i propri conti correnti?
Obiettivo: Trasforma la classe Bank in un Template Class.
Aggiungi un parametro di template (es. typename AccountType) e usalo all’interno di make_transfer al posto del rigido long. Istanzia poi nel main una Bank<long>.
Esercizio 2: La Funzione Mode Universale
Section titled “Esercizio 2: La Funzione Mode Universale”La “Moda” (Mode) di una serie di valori è il valore che vi appare più frequentemente.
Obiettivo: Trasforma questa rigida implementazione di mode per gli interi in un algoritmo template, di modo che possa estrarre la moda anche da array di double, float o long.
(Non preoccuparti del caso di elementi con stessa frequenza o di array vuoti per questo esercizio, l’algoritmo di base hardcodato troverà il primo).