Corso di Programmazione ad Oggetti e C++
programma
Introduzione:
Breve introduzione ai linguaggi di programmazione. Struttura di un programma (moduli, librerie). Strumenti per la programmazione (editors, debugger, make).
Sintassi base:
Funzioni, variabili e tipi, esmpio di programma. Precisione dei tipi, differenze tra float, double, int e long. Operatori e loro precedenza. Controllo di flusso: istruzioni if, switch, while, do while, for. Costanti.
Utilizzo della memoria:
Variabili e loro visibilità. Chiavi static e const. Array e stringhe di char. Struct e namespace. Memoria statica, automatica e dinamica. Stack e heap. Riferimenti e puntatori. Funzioni: passaggio di parametri per valore, per riferimento e per puntatore. Funzioni: restituzione per valore e per puntatore.
Programmazione ad oggetti:
Introduzione alla programmazione ad oggetti. Interfaccia ed implementazione. Visibilità. Caratteristiche della programmazione ad oggetti: riutilizzo del codice, composizione ed ereditarietà. Costruttori e distruttori. Utilizzo della memoria, strutture dati. Lista concatenata. Ereditarietà e composizione: inizializzazione, costruttori e distruttori, ordine di esecuzione. Specializzazione. Costruttore di default, copy constructor e operatore di assegnamento. Polimorfismo, cast, upcasting. Funzioni virtuali, binding dei metodi. Slicing delle classi derivate. Funzioni puramente virtuali, classi astratte. Classi parametriche, template.
Ingegneria del software:
Cicli di sviluppo, sviluppo a cascata ed evolutivo. Rappresentazione grafica dei problemi: UML. Diagrammi di classe. Diagrammi di package, dipendenze di compilazione e dipendenze generiche. Diagrammi di collaborazione. Analisi di un problema.
Standard Template Library:
Introduzione. Contenitori: vector, list, pair e map. Iteratori: iteratori e puntatori, tipi. Classe string. Algoritmi: di copia, di sort, generici.
Tutti gli argomenti sono illustrati con esempi di programmi.