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