INTRODUZIONE LEZIONE 1) ; Presentazione del nuovo tipo di commenti ad una sola linea che iniziano con // e terminano alla fine della riga. Presentazione del nuovo modo semplificato di input/output tramite cin e cout, che sostituiscono scanf() e printf(). Creazione della prima classe che, non avendo metodi, e' praticamente uguale ad una normale struttura. Attenzione a non scambiare la classe per un oggetto istanziato!!! Non si puo' operare sulla classe direttamente, in quanto e' solo una definizione astratta di un tipo di oggetto. Per ottenere un oggetto di quel tipo, utilizzabile, occorre occorre istanziarne un esemplare. Se la classe e' animale, si dovra' fare qualcosa del genere: "animale cane1;". Ora abbiamo l'oggetto cane1, di tipo (classe) animale. Cio' e' simile a quando si istanzia una variabile di tipo int: non si puo' scrivere "int = 1", ossia usare un concetto astratto, bensi' si crea una variabile di quel tipo (int), a cui diamo un nome: "int pippo;". A questo punto possiamo usare pippo, istanza del concetto int: "pippo = 1;". LEZIONE 2) ; Creazione di una classe con metodi pubblici e dati privati. LEZIONE 3) ; Aggiungiamo il costruttore e il distruttore alla classe. LEZIONE 4) ; Rendiamo parametrizzato il costruttore. LEZIONE 5) ; Un esempio di polimorfismo: scriviamo 3 funzioni somma(), che hanno lo stesso nome, ma parametri diversi: una e' per numeri int, una per i long e l'ultima per i float. In questo modo facciamo una sovrapposizione di funzioni, detta "overload": possiamo scrivere somma() per sommare numeri int,long e float, senza preoccuparci, sara' il compilatore a scegliere la funzione giusta volta per volta, rendendo piu' semplice il nostro compito. LEZIONE 6) ; Un esempio applicato alle classi: sovrapposizione (overload) di costruttori. Inoltre si sfrutta la possibilita' di dichiarare le variabili e le classi in qualsiasi punto del listato, impossibile in C (dove possono essere dichiarate solo all'inizio dei blocchi). LEZIONE 7) ; Sperimentiamo l'ereditarieta' (inheritance) derivando dalla classe animale (superclasse) delle sottoclassi "figlie", che erediteranno le variabili e i metodi della classe "padre", risparmiandoci di riscriverle, e limitando il nostro lavoro all'aggiunta delle variabili e dei metodi peculiari delle classi derivate. Il riutilizzo del codice e' evidente. LEZIONE 8) ; Quando si istanziano degli oggetti da una classe, ognuno di questi oggetti dispone di copie personali dei metodi e delle variabili definite dalla classe. Cioe', se a e b sono due classi di tipo animale, le due variabili a.numerozampe e b.numerozampe sono autonome, per cui cambiando una non si modifica l'altra. E' possibile pero' definire STATIC degli elementi di una classe: cio' significa che se ne fa esistere una sola copia, condivisa da tutti gli oggetti istanziati.