Linguaggio C ++

Ekip
A Milano

Chiedi il prezzo
Vuoi parlare del corso con un consulente?
Confronta questo corso con altri simili
Leggi tutto

Informazione importanti

  • Corso
  • Milano
Descrizione

Obiettivo del corso: Questo corso è indirizzato a chi intenda utilizzare gli strumenti offerti dal linguaggio C++ per la programmazione orientata agli oggetti. Il corso introduce al linguaggio C++ come estensione procedurale del linguaggio C, per passare al concetto di classe ed addentrarsi negli argomenti più avanzati che caratterizzano la programmazione full object oriented.

Informazione importanti
Sedi

Dove e quando

Inizio Luogo
Consultare
Milano
Via Fabio Filzi, 27, 20124, Milano, Italia
Visualizza mappa

Cosa impari in questo corso?

Linguaggio C

Programma

Descrizione

Questo corso è indirizzato a chi intenda utilizzare gli strumenti offerti dal linguaggio C++ per la programmazione orientata agli oggetti. Il corso introduce al linguaggio C++ come estensione procedurale del linguaggio C, per passare al concetto di classe ed addentrarsi negli argomenti più avanzati che caratterizzano la programmazione full object oriented.

Prerequisiti

  • Solida conoscenza del linguaggio C
  • Concetti di base sulla programmazione orientata agli oggetti

    Obiettivi

  • Comprendere la collocazione del linguaggio C++ nel panorama offerto dai linguaggi di programmazione, con particolare riferimento al C
  • Capirne la potenza espressiva, soprattutto nell'ambito della programmazione OO
  • Acquisire gli elementi del C++ che estendono le potenzialità del C in ambito strettamente procedurale
  • Comprendere il concetto di classe
  • Acquisire gli strumenti offerti dal C++ per la programmazione orientata agli oggetti
  • Ottenere una panoramica sulle funzionalità offerte dalle librerie standard C++ e STL

    Argomenti

    Il C++ come estensione strettamente procedurale del C
  • Regole di visibilità dei nomi, operatore di scope resolution (::)
  • La gestione della memoria in un processo C++ (globals, code, stack, heap)
  • Funzioni con parametri di default
  • Overloading di funzioni globali
  • Nuova conservatività del qualificatore const
  • Nuove posizioni per le dichiarazioni di variabili
  • Funzioni globali inline
  • Le variabili reference, analogie e differenze con le variabili puntatore
  • Allocazione dinamica in C++: operatori new e delete
  • Allocazione di tipi fondamentali e di array di tipi fondamentali
  • Overloading e completa personalizzazione degli operatori globali new e delete

    Le Classi
  • Dalla struttura C alla classe C++
  • Specificatori di accesso public e private
  • Data members
  • Member functions e loro overloading
  • Incapsulamento e protezione dei dati
  • Puntatori ad oggetti e a funzioni di oggetti
  • L'operatore di scope resolution nel contesto delle classi
  • Uso (implicito ed esplicito) del puntatore this
  • Costruttori e distruttori, ciclo di vita di un oggetto
  • Liste di inizializzazione nei costruttori
  • Uso di funzioni const per l'accesso a data members di sola lettura
  • Aggregazione: ordine di chiamata dei costruttori di un aggregato
  • Data members e member functions di tipo static
  • Classi con puntatori ad oggetti creati dinamicamente: problemi correlati e soluzioni grazie
    all'uso di opportuni costruttori e distruttori
  • Overloading dei costruttori e copy constructor

    Funzioni e classi friend
  • Funzioni globali friend di classi
  • Classi friend di classi

    Overloading di operatori
  • Notazione funzionale per gli operatori
  • Immutabilità delle precedenze, dell'associtività, impossibilità di introdurre nuovi operatori, operatori che non si possono sovraccaricare (::, .*, ?:)
  • Overloading di operatori in operazioni che coinvolgono istanze di classi
  • Overloading dell'operatore di assegnamento, anche nel caso di classi che implicano allocazione dinamica. Propagazione del risultato mediante il puntatore this
  • Overloading degli operatori new e delete specifici per classi

    Conversioni di tipo in C++
  • Conversioni mediante costruttore
  • Conversioni mediante overloading di operatori
  • Conversioni mediante overloading dell'operatore di assegnamento
  • Conversioni mediante overloading dell'operatore cast

    Ereditarietà e polimorfismo
  • Ereditarietà semplice
  • Uso dello specificatore di accesso protected
  • Conversioni di oggetti classe derivata -> oggetti classe base: considerazioni
  • Conversioni di puntatori ad oggetti classe derivata -> puntatori ad oggetti classe base
  • Meccanismi di hiding e di overriding
  • Funzioni virtuali e polimorfismo
  • Implementazione delle funzione virtuali: late binding mediante V-PTR a V-TABLE
  • Funzione virtuali pure, classi astratte, classi astratte pure (interfacce)
  • Ereditarietà multipla. Risoluzioni di conflitti dovuti ad anelli nel grafo della gerachia (ereditarietà per via virtuale)

    Template
  • Cenni su funzioni template
  • Cenni su classi template
  • Cenni su STL

    Gestione delle eccezioni in C++
  • Il costrutto try, throw e catch
  • Il gestore universale catch(...)
  • Gestione di eccezioni tramite lancio e raccolta di oggetti eccezione
  • Elenchi di catch
  • Stack walking di eccezioni. Stack unrolling
  • Funzioni che possono lanciare eccezioni
  • Costruttori ed eccezioni

  • Confronta questo corso con altri simili
    Leggi tutto