
Corso C++
Padroneggi il C++ dalle basi — dalla sintassi di base e la gestione della memoria ai template, alla concorrenza e alle moderne funzionalità del C++23. Questo corso fornisce la profondità tecnica e la pratica pratica per scrivere codice C++ veloce, sicuro e di livello professionale. Che miri alla programmazione di sistema, allo sviluppo embedded o alle applicazioni ad alte prestazioni, questo è il set di competenze completo di cui ha bisogno.
Cosa imparerai:
Costruirà una solida base nella sintassi C++, nel flusso di controllo e nelle funzioni prima di passare ai puntatori, alla gestione della memoria e alla programmazione orientata agli oggetti. Padroneggerà la Standard Template Library, scriverà codice generico con i template e applicherà funzionalità moderne come lambda, semantica di spostamento e binding strutturati. Il corso tratta anche la gestione degli errori, l'unit testing, il profiling delle prestazioni, i sistemi di build con CMake e le pratiche professionali, inclusi il controllo di versione e la revisione del codice. Alla fine, avrà le competenze per sviluppare software C++ di qualità produttiva in un'ampia gamma di domini.
Come studi in modo pratico Corso C++
Come metti in pratica Corso C++
Per te che sei un'azienda e vuoi formare il tuo team
Su Dedika per aziende, il corso include esercizi ed esempi personalizzati sul tuo business e secondo le esigenze della tua azienda.
Contenuto del corso
8 Capitoli • 40 LezioniDurata tra 4 e 360 ore (decidi tu)
Capitolo 1NascondiNascondi dettagliVedi dettagliFondamenti di C++ e configurazione dell'ambiente
Fondamenti di C++ e configurazione dell'ambiente
Lezione 1 • Variabili, tipi e letterali
Introduce i tipi di dati fondamentali, la dichiarazione di variabili e i valori letterali. Costruisce il vocabolario necessario per tutte le future manipolazioni dei dati.
Lezione 2 • Configurazione dell'ambiente di sviluppo
Installare compilatori, IDE e strumenti di build per lo sviluppo C++. Fornisce le basi tecniche da cui dipende ogni capitolo successivo.
Lezione 3 • Operatori ed espressioni
Esplora gli operatori aritmetici, relazionali, logici e bit a bit. Le regole di precedenza degli operatori sono applicate per scrivere espressioni corrette.
Lezione 4 • Sintassi di base e struttura del programma
Tratta l'anatomia di un file sorgente C++, inclusi header, funzione main e istruzioni. Collega le regole sintattiche a un codice leggibile e compilabile.
Lezione 5 • Input e output con iostream
Insegna l'I/O su console usando cin e cout della libreria standard. Abilita programmi interattivi essenziali per i primi esercizi.
Capitolo 2NascondiNascondi dettagliVedi dettagliFlusso di controllo e funzioni
Flusso di controllo e funzioni
Lezione 1 • Cicli e iterazione
Introduce i cicli for, while e do-while insieme alle istruzioni di controllo dei cicli. I modelli di ripetizione sono alla base degli algoritmi nei capitoli successivi.
Lezione 2 • Scope, durata e classi di memorizzazione
Spiega lo scope delle variabili locali, globali e statiche e la durata degli oggetti. Previene bug comuni causati da una visibilità delle variabili fraintesa.
Lezione 3 • Ricorsione e sovraccarico delle funzioni
Introduce la risoluzione ricorsiva dei problemi e firme di funzione multiple con lo stesso nome. Prepara gli studenti a modelli algoritmici complessi.
Lezione 4 • Dichiarazione e definizione delle funzioni
Insegna come dichiarare, definire e chiamare funzioni con parametri e tipi di ritorno. Le funzioni sono l'unità primaria di riuso del codice in C++.
Lezione 5 • Istruzioni condizionali
Tratta i costrutti if, else-if, else e switch per il processo decisionale. Abilita direttamente i programmi guidati dalla logica costruiti durante il corso.
Capitolo 3NascondiNascondi dettagliVedi dettagliArray, puntatori e memoria
Array, puntatori e memoria
Lezione 1 • Allocazione dinamica della memoria
Insegna l'allocazione nello heap con new e la deallocazione con delete. Una corretta gestione delle risorse qui previene memory leak in tutti i programmi futuri.
Lezione 2 • Array e stringhe in stile C
Tratta array a dimensione fissa, array multidimensionali e stringhe terminate da null. Stabilisce le strutture dati di basso livello su cui si basano i puntatori.
Lezione 3 • Riferimenti e const correctness
Distingue i riferimenti dai puntatori e impone l'uso di const per la sicurezza. La const correctness è uno standard di codifica C++ professionale.
Lezione 4 • Panoramica sugli smart pointer
Introduce unique_ptr, shared_ptr e weak_ptr come alternative più sicure ai puntatori raw. Collega la gestione manuale della memoria agli idiomi moderni del C++.
Lezione 5 • Basi dei puntatori
Introduce la dichiarazione dei puntatori, l'operatore indirizzo-di e la dereferenziazione. I puntatori sono centrali per la memoria dinamica e le funzionalità orientate agli oggetti successive.
Capitolo 4NascondiNascondi dettagliVedi dettagliProgrammazione orientata agli oggetti in C++
Programmazione orientata agli oggetti in C++
Lezione 1 • Polimorfismo e funzioni virtuali
Implementa il polimorfismo a runtime tramite funzioni virtuali e classi astratte. Abilita progetti flessibili ed estensibili, centrali nelle grandi codebase C++.
Lezione 2 • Ereditarietà e gerarchie di classi
Modella relazioni is-a usando ereditarietà singola e multipla. Stabilisce la struttura gerarchica necessaria per il polimorfismo.
Lezione 3 • Sovraccarico degli operatori
Permette ai tipi personalizzati di usare gli operatori standard in modo naturale ed espressivo. Rafforza l'incapsulamento mantenendo la logica all'interno della classe.
Lezione 4 • Costruttori, distruttori e inizializzazione
Insegna la gestione del ciclo di vita degli oggetti tramite costruttori e distruttori. Una corretta inizializzazione previene comportamenti indefiniti in programmi complessi.
Lezione 5 • Classi e oggetti
Tratta la definizione delle classi, i membri dati, le funzioni membro e gli specificatori di accesso. Le classi sono il meccanismo di astrazione primario in C++.
Capitolo 5NascondiNascondi dettagliVedi dettagliLa Standard Template Library
La Standard Template Library
Lezione 1 • Gestione delle stringhe con std::string
Tratta operazioni, manipolazione e utilità di conversione di std::string. Sostituisce le stringhe in stile C non sicure con un'alternativa sicura e ricca di funzionalità.
Lezione 2 • Algoritmi della STL
Applica algoritmi di ordinamento, ricerca, trasformazione e accumulazione da <algorithm>. Sostituisce i cicli manuali inclini all'errore con espressivi one-liner.
Lezione 3 • Container associativi e non ordinati
Introduce map, set, unordered_map e unordered_set per l'accesso basato su chiave. Abilita modelli di ricerca rapida utilizzati nelle applicazioni reali.
Lezione 4 • Container sequenziali
Tratta vector, list, deque e array per l'archiviazione ordinata dei dati. La scelta del container giusto impatta direttamente le prestazioni del programma.
Lezione 5 • Iteratori e intervalli
Spiega le categorie di iteratori, i modelli di attraversamento e le operazioni basate su intervalli. Gli iteratori sono l'interfaccia universale tra container e algoritmi.
Capitolo 6NascondiNascondi dettagliVedi dettagliTemplate e programmazione generica
Template e programmazione generica
Lezione 1 • Concetti e vincoli nel C++20
Applica i concetti del C++20 per vincolare i parametri dei template con requisiti leggibili. Produce messaggi di errore più chiari e interfacce auto-documentanti.
Lezione 2 • Basi di metaprogrammazione con template
Introduce il calcolo a tempo di compilazione usando type traits e constexpr. Permette astrazioni a costo zero e validazione a tempo di compilazione.
Lezione 3 • Function template
Introduce la sintassi dei template per scrivere funzioni generiche con parametri di tipo. Elimina la duplicazione del codice preservando la piena sicurezza del tipo.
Lezione 4 • Class template
Estende i template alle classi, permettendo container e utilità generiche. È alla base dei container STL studiati nel capitolo precedente.
Lezione 5 • Template variadici
Tratta i parameter pack e le fold expression per template con argomenti variabili. Abilita API flessibili come std::tuple e utilità di logging.
Capitolo 7NascondiNascondi dettagliVedi dettagliCaratteristiche e idiomi del C++ moderno
Caratteristiche e idiomi del C++ moderno
Lezione 1 • Binding strutturati e std::optional
Introduce i binding strutturati per la scomposizione simile a tuple e optional per valori nullable. Riduce il boilerplate ed esprime chiaramente l'intento.
Lezione 2 • std::variant e std::any
Tratta unioni type-safe con std::variant e memorizzazione con tipo cancellato con std::any. Sostituisce le union C non sicure e i puntatori void nel codice moderno.
Lezione 3 • Fondamenti di concorrenza con std::thread
Introduce la creazione di thread, le primitive di sincronizzazione e la prevenzione delle data race. Prepara gli studenti allo sviluppo di applicazioni multi-thread.
Lezione 4 • Semantica di spostamento e riferimenti rvalue
Spiega i riferimenti rvalue, i costruttori di spostamento e l'assegnazione di spostamento per le prestazioni. Elimina copie non necessarie in programmi ad uso intensivo di risorse.
Lezione 5 • Espressioni lambda e chiusure
Tratta la sintassi lambda, le liste di cattura e l'uso con gli algoritmi STL. Permette oggetti funzione concisi e inline senza boilerplate.
Capitolo 8NascondiNascondi dettagliVedi dettagliGestione degli errori, test e prestazioni
Gestione degli errori, test e prestazioni
Lezione 1 • Profiling e analisi delle prestazioni
Applica strumenti di profiling per identificare gli hotspot e misurare il tempo di esecuzione. L'ottimizzazione guidata dai dati evita messe a punto premature e fuorvianti.
Lezione 2 • Unit Testing in C++
Introduce framework di test, progettazione di casi di test e flusso di lavoro di sviluppo guidato dai test. I test automatizzati verificano la correttezza man mano che il codice evolve.
Lezione 3 • Asserzioni e programmazione difensiva
Usa assert, static_assert e controlli di precondizione per individuare precocemente i bug. Le tecniche difensive riducono il tempo di debug in grandi codebase.
Lezione 4 • Tecniche di ottimizzazione
Tratta layout di dati cache-friendly, miglioramenti algoritmici e suggerimenti per il compilatore. Applica i risultati del profiling per ottenere accelerazioni misurabili.
Lezione 5 • Gestione delle eccezioni
Tratta try-catch-throw, gerarchie di eccezioni e progettazione di codice sicuro rispetto alle eccezioni. La corretta propagazione degli errori è obbligatoria nel software C++ professionale.
Il tuo certificato valido di completamento
Questo corso è per te:
Studente di informatica: desideroso di andare oltre lo pseudocodice verso linguaggi del mondo reale.
Sviluppatore Python o JavaScript: pronto a capire cosa succede sotto l'astrazione.
Aspirante sviluppatore di giochi: bisognoso del controllo a basso livello che solo il C++ offre.
Ingegnere elettrico: intenzionato a scrivere firmware e driver con strumenti linguistici moderni.
Persona in cambio di carriera: mira a ruoli di programmazione di sistema ben retribuiti provenendo da un background non informatico.
Costruttore hobbista: desideroso di programmare microcontrollori e dispositivi embedded in modo più efficace.
Cosa dicono i nostri studenti
Le sue lezioni sono perfette. Ho acquistato il pacchetto annuale e finalmente ho l'opportunità di seguire diversi argomenti di mio interesse senza dover cambiare piattaforma... vi ringrazio per tutto quello che fate, vi ho già raccomandati ad altre persone...

Mi piace come le lezioni vanno dritte al punto e come riesco a cambiare capitoli e saltare contenuti di cui non ho bisogno.

Mi piace il contenuto e il modo di presentazione e trascrizione dei video, che accelera il processo!

La piattaforma è veloce, semplice da usare. La diversità dei contenuti e i video complementari aiutano molto nell'apprendimento.

Principali percorsi formativi
FAQ
Chi è Dedika?
Il certificato è valido in Italia?
I corsi sono gratuiti?
Qual è il carico di lavoro del corso?
Come sono strutturati i corsi?
Come funzionano i corsi?
Qual è la durata dei corsi?
Qual è il costo o il prezzo dei corsi?
Cos’è un corso EAD o online e come funziona?
Corso PDF




















