Nuovo Ordinamento - Ingegneria - Università degli Studi di Trento
Nuovo Ordinamento - Ingegneria - Università degli Studi di Trento
Nuovo Ordinamento - Ingegneria - Università degli Studi di Trento
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
PROGRAMMI DI INSEGNAMENTO a.a. 2002/2003<br />
PROGRAMMAZIONE AD OGGETTI 1<br />
Docente: prof. Vincenzo D’Andrea<br />
1° anno - 3° bim - 6 cre<strong>di</strong>ti<br />
Corso <strong>di</strong> Laurea in <strong>Ingegneria</strong> dell’Informazione e dell’Organizzazione<br />
Obiettivi del corso<br />
Obiettivo del corso è l’introduzione alla programmazione ad oggetti utilizzando il C++ come linguaggio<br />
principale. Il corso coniuga aspetti pratici e teorici. Al termine del corso saranno noti i concetti<br />
principali della programmazione ad oggetti (classe, oggetto, ere<strong>di</strong>tarietà, relazioni, ecc.) e la loro<br />
realizzazione pratica. Oltre a focalizzarsi sul C++ come linguaggio <strong>di</strong> riferimento, verranno introdotti<br />
altri linguaggi <strong>di</strong> programmazione ad oggetti.<br />
Programma (in or<strong>di</strong>ne non cronologico)<br />
· Introduzione alla modellazione ad oggetti<br />
Gestire la complessità. Incapsulare le attività e delegare i compiti. Modularità. Concetto <strong>di</strong> classe.<br />
Classi, meto<strong>di</strong> e messaggi. Relazioni tra le classi. Cenni sulla modellazione con UML. Come<br />
definire le classi a partire dal problema.<br />
· Costruire ed usare classi<br />
Dal progetto alla definizione <strong>di</strong> una classe. Incapsulamento e visibilità. Public, private.Costruttori e<br />
<strong>di</strong>struttori. Oggetti: istanze <strong>di</strong> classi. Comportamento <strong>di</strong>namico <strong>degli</strong> oggetti: messaggi.<br />
· Ere<strong>di</strong>tarietà<br />
Riuso e sostituzione (overri<strong>di</strong>ng). Visibilità tra <strong>di</strong>scendenti. Protected. Meto<strong>di</strong> virtuali. Interfacce e<br />
classi astratte. Ere<strong>di</strong>tarietà multipla. Forme <strong>di</strong> ere<strong>di</strong>tarietà.<br />
· Polimorfismo<br />
Overloa<strong>di</strong>ng <strong>di</strong> funzioni, meto<strong>di</strong> e operatori. Overri<strong>di</strong>ng. Variabili polimorfe. Definire classi parametriche<br />
per mezzo <strong>di</strong> templates.<br />
· Approfon<strong>di</strong>menti sulle classi in C++<br />
Ambiti <strong>di</strong> vali<strong>di</strong>tà. Classi e meto<strong>di</strong> friend. Namespaces. Variabili static <strong>di</strong> classe. Costruttore <strong>di</strong> copia<br />
e chiamate implicite. La keyword Const. Funzioni inline.<br />
Modalità <strong>di</strong> svolgimento del corso<br />
Il corso alternerà lezioni in aula ed esercitazioni in laboratorio<br />
Competenze acquisite<br />
· Competenze <strong>di</strong> carattere conoscitivo<br />
Conoscenza dei concetti principali della programmazione a oggetti. Conoscenza <strong>di</strong> similitu<strong>di</strong>ni e<br />
<strong>di</strong>fferenze tra i principali linguaggi <strong>di</strong> programmazione ad oggetti.<br />
231