- Facciamo un esempio. Vogliamo definire una classe lista, che possa essere usata per
raccogliere qualunque tipo di oggetto.
- Una volta definita la lista, noi vorremo poi creare liste di cani e liste
di gatti e liste di qualunque altro oggetto ci venga in mente
- Vorremo, ad esempio, poter definire una lista <cani> ed una
lista <gatti>
- Il problema è come riferirci all'oggetto della lista?
- È un problema analogo a quello dei parametri formali e parametri attuali
- Dovremo in pratica definire la nostra classe riferendoci ad una classe formale che
verrà sostituita, quando definiremo l'istanza della classe con una classe attuale
- Quelle che ho definito come classi formali prendono il nome di prototipi di classe
e dovranno essere sostituiti con classi attuali nella definizione di un oggetto
- Il compilatore sarà in grado fi verificare la coerenza dei tipi (analisi semantica)
anche tramite le classi prototipo (o template)
- Anche la genericità ottenuta tramite i prototipi di classe non è
implementata in tutti i linguaggi ad oggetti
|