Linguaggio C ++

Ekip
A Milano

Chiedi il prezzo
Chiedi informazioni a un consulente Emagister
Chiedi informazioni a un consulente Emagister

Informazioni importanti

Tipologia Corso
Inizio Milano
  • 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.

Informazioni importanti
Sedi

Dove e quando

Inizio Luogo
Consultare
Milano
Via Fabio Filzi, 27, 20124, Milano, Italia
Visualizza mappa
Inizio Consultare
Luogo
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
  • Successi del Centro


    Gli utenti che erano interessati a questo corso si sono informati anche su...
    Leggi tutto