Programmazione in C++

E-mail Stampa PDF

Durata del corso: 5 giorni 

 

A chi si rivolge il corso:

Il corso è rivolto a sviluppatori interessati a approfondire le proprie conoscenze del linguaggio C++

 

Prerequisiti:

E' consigliata la familiarità con il linguaggio C o il Pascal 

 

Il corso, dopo aver introdotto i concetti principali alla base della programmazione orientata a oggetti e i diagrammi UML (Unified Modeling Language) utilizzati durante la fase di progettazione, illustra metodologicamente come implementare gli oggetti attivi, passivi e persisitenti, come implementare le relazioni (generalizzazione, associazione, aggregazione, composizione, ecc..) fra gli oggetti e come ottimizzare e rendere robusti i programmi in C++. Tutte le esercitazioni vengono svolte utilizzando il compilatore GNU G++ in un ambiente grafico distribuito con interfaccia grafica X11 su sistema operativo UNIX.

 

 

Programma del corso

 

Introduzione agli oggetti

  • Il progresso dell'astrazione
  • Gli oggetti e le loro interfacce
  • Nascondere l'implementazione
  • Riutilizzare l'implementazione
  • Ereditarietà
  • Oggetti intercambiabili grazie al polimorfismo
  • Creazione e distruzione degli oggetti
  • Gestione delle eccezioni 
  • Analisi e design
  • Perchè il C++ è il meglio
  • Strategie di transizione

 Fare e usare gli oggetti

  • Il processo di traduzione del linguaggio
  • Tools per la compilazione separata
  • Il primo programma in C++
  • Qualcosa in più sugli iostream
  • Introduzione alle stringhe
  • Leggere e scrivere files 
  • Introduzione al template vector

 Il C nel C++

  • Creazione di funzioni
  • Creazione di librerie
  • Controllo dell'esecuzione
  • Introduzione agli operatori 
  • Introduzione ai tipi dati
  • Scoping
  • Specificare l'allocazione di memoria 
  • Gli operatori e il loro uso
  • Creazione di un tipo composto
  • Tecniche di debug

Astrazione dati

  • Una piccola libreria in stile C
  • Cosa non va?
  • L'oggetto base
  • Cosa è un oggetto?
  • Tipi di dati astratti
  • Dettagli sugli oggetti
  • Etichetta di costruzione degli header files
  • Strutture innestate

Nascondere l'implementazione

  • Definire i limiti
  • Il controllo di accesso in C++
  • Friends
  • Organizzazione di un oggetto
  • La classe
  • Controllare le classi 

 Inizializzazione e cleanup

  • Inizializzazione garantita grazie ai costruttori
  • Cleanup garantito con i distruttori
  • Eliminazione del blocco di definizione
  • Inizializzazione aggregata
  • Costruttori di default 

 Funzione di overload e argomenti di default

  • Maggior name decoration
  • Un esempio di overload
  • Argomenti di default
  • Unioni  
Costanti
  • Sostituzione dei  valori
  • Puntatori
  • Argomenti delle funzioni e valori di ritorno
  • Classi
  • Volatile

 Funzioni inline

  • Caratteristiche del preprocessore
  • Funzioni inline
  • Gli inline e il compilatore
  • Forward referencing
  • Ulteriori caratteristiche del preprocessore

Controllo dei nomi

  • Elementi statici nel C
  • Membri statici in C++
  • Dipendenza dell'inizializzazione statica
  • Specifiche di linkage alternato 

 


Riferimenti e costruttori copia 

  • I puntatori in C++
  • Il costruttore copia
  • Puntatori a membri

Overload operatori

  • Sintassi
  • Operatori sovraccaricabili
  • Operatori non membri
  • Sovraccaricare l'assegnazione 
  • Conversione automatica del tipo 
Creazione di oggetti dinamici
  • Creazione di un oggetto
  • Ristrutturazione dei vecchi esempi
  • New e Delete per gli array
  • Finire la memoria
  • Overload di New e Delete
Ereditarietà e composizione
  • Sintassi della composizione
  • Sintassi dell'ereditarietà
  • La lista dell'inizializzazione del costruttore
  • Combinare composizione ed ereditarietà
  • Funzioni che non ereditano automaticamente
  • Protected
  • Ereditarietà multipla
  • Sviluppo incrementale
  • Upcasting
Polimorfismo e funzioni virtuali
  • Evoluzione dei programmi in C++
  • Upcasting
  • Funzioni virtuali
  • Implementazione del late binding
  • Perchè le funzioni virtuali?
  • Classi astratte base e le funzioni virtuali pure
  • Ereditarietà e la VTABLE
  • Funzioni  virtuali e costruttori
  • Distruttori e distruttori virtuali 
Introduzione ai Templates
  • Contenitori e iteratori
  • Introduzione ai template
  • Sintassi dei template
  • Polimorfismo e contenitori
 

Newsflash

Area Privata