Template
Il meccanismo dell'ereditarieta` consente il
riutilizzo di codice precedentemente scritto, l'idea e` quella di riconoscere
le proprieta` di un certo insieme di valori (tipo) e di definirle realizzando
una classe base (astratta) da specializzare poi caso per caso secondo le necessita`.
Quando riconosciamo che gli oggetti con cui si ha a che fare sono un caso particolare
di una qualche classe della gerarchia, non si fa altro che specializzarne la
classe piu` opportuna.
Esiste un'altro approccio che per certi versi procede in senso opposto; anzicche`
partire dai valori per determinarne le proprieta`, si definiscono a priori le
proprieta` scrivendo codice che lavora su tipologie (non note) di oggetti che
soddisfano tali proprieta` (ad esempio l'esistenza di una relazione di ordinamento)
e si riutilizza tale codice ogni qual volta si scopre che gli oggetti con cui
si ha a che fare soddisfano quelle proprieta`.
Quest'ultima tecnica prende il nome di programmazione generica
ed il C++ la rende disponibile tramite il meccanismo dei template.
Un template altro non e` che codice parametrico, dove i parametri
possono essere sia valori, sia nomi di tipo. Tutto sommato questa non e` una
grossa novita`, le ordinarie funzioni sono gia` di per se del codice parametrico,
solo che i parametri possono essere unicamente valori di un certo tipo.
|