Skip to content

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.

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

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).