Cos’è C++? C++ è un linguaggio multipiattaforma che può essere utilizzato per creare applicazioni ad alte prestazioni ed è stato sviluppato da Bjarne Stroustrup come estensione del linguaggio C ed è sicuramente uno dei linguaggi di programmazione più richiesti nel mondo del lavoro.
Offre ai programmatori un alto livello di controllo sulle risorse di sistema e sulla memoria.
Il linguaggio è stato aggiornato 5 volte in modo significativo nel 2011, 2014, 2017, 2020 e 2023, passando rispettivamente a C++11, C++14, C++17, C++20 e C++23.
Perché usarlo? Perché è uno dei linguaggi di programmazione più popolari al mondo.

Lo si trova nei sistemi operativi moderni, nelle interfacce grafiche e nei sistemi embedded.
C++ è un linguaggio di programmazione orientato agli oggetti che fornisce una struttura chiara ai programmi e consente di riutilizzare il codice, riducendo i costi di sviluppo. È portatile e può essere utilizzato per sviluppare applicazioni adattabili a più piattaforme; inoltre è divertente e facile da imparare!
Poiché questo linguaggio è simile a C, C# e Java, permette ai programmatori di passare facilmente da C++ ad altri linguaggi o viceversa, si può dire che è come una sorta di base per gli altri linguaggi appena menzionati!
Differenza tra C e C++
C++ è stato sviluppato come un’estensione di C, e entrambi i linguaggi hanno una sintassi quasi identica. La principale differenza tra C e C++ è che quest’ultimo supporta le classi e gli oggetti, mentre C no.
Oggetti: ma cosa sono?
Gli oggetti sono entità che rappresentano concetti o cose nel mondo reale all’interno di un programma orientato agli oggetti (OOP) e quindi un oggetto è una combinazione di dati (chiamati attributi o proprietà) e funzioni (chiamate metodi) che operano su quei dati.
Ogni oggetto è un’istanza di una classe, che definisce le sue caratteristiche e comportamenti. Ad esempio, in un programma che gestisce una libreria, un “Libro” potrebbe essere una classe, e ogni libro specifico sarebbe un oggetto con attributi come titolo, autore e anno di pubblicazione, e metodi come “prendere in prestito” o “restituire”: gli oggetti aiutano a strutturare e organizzare il codice in modo più modulare e riutilizzabile.
Questo perché nei linguaggi precedenti, come il Basic o lo stesso C, se ad esempio volevo rappresentare un libro, dovevo creare variabili separate come Libro_pagina
, Libro_testo
, e così via: ogni variabile era indipendente.
Con la programmazione orientata agli oggetti, invece, posso creare un unico oggetto libro
e accedere ai suoi attributi tramite libro.pagina
, libro.testo
, e così via, rendendo il codice più organizzato e l’indentazione più chiara
C++ inizio: installare l’IDE o al limite utilizzarlo online
Un IDE (Integrated Development Environment) è utilizzato per modificare e compilare il codice.
Gli IDE più popolari includono Code::Blocks, Eclipse e Visual Studio e questi sono tutti gratuiti e possono essere utilizzati sia per modificare che per eseguire il debug del codice C++.
C’è da dire che gli IDE basati sul web possono funzionare anch’essi, ma la loro funzionalità è limitata, per questo per ora per semplificare il più possibile andremo proprio su OnlineGDB che è un IDE online che non necessita alcuna installazione.
In questo tutorial non dovrai scaricare assolutamente nulla: ti basterà usare il compilatore online di OnlineGDB per questo linguaggio che puoi trovare qui.
Si parte da questo perché è effettivamente il metodo più semplice per approcciarsi a questo linguaggio il tutto senza cominciare da complicate installazioni che possono essere toste per principianti; ma che usano il C++ ci sono diversi software come NetBeans fino ad arrivare al noto motore di videogiochi Unreal Engine che di fatto usa proprio questo linguaggio di programmazione nei suoi script.
Alla fine sul quale IDE ti servirà spetterà esclusivamente a te.
Il primo “vero” programma
Vai quindi sul sito di OnlineGDB e pertanto scrivi il seguente codice:
#include <iostream>
using namespace std;
int main() {
cout << “Hello World!“;
return 0;
}
Dovrebbe quindi apparire come nell’immagine sottostante:

Fatto questo ti basta cliccare su “Run” e il risultato è questo:

Un risultato molto terra terra ma che ti aiuterà a comprendere le basi della programmazione in C++.
Sintassi
Per una scrittura ordinata in C++ la sintassi risulta molto importante perché aiuta a tenere ordinato il testo.
Ora spiego l’esempio fatto sopra:
Linea 1: #include <iostream>
è una libreria di file di intestazione che ci permette di lavorare con oggetti di input e output, come cout
(usato nella linea 5). I file di intestazione aggiungono funzionalità ai programmi C++.
Linea 2: using namespace std
significa che possiamo usare i nomi degli oggetti e delle variabili dalla libreria standard.
Non preoccuparti se non capisci come funziona #include <iostream>
e using namespace std
e pensa a questi come a qualcosa che (quasi) sempre appare nel tuo programma.

Linea 3: Una linea vuota. C++ ignora gli spazi bianchi, ma noi li usiamo per rendere il codice più leggibile.
Linea 4: Un’altra cosa che appare sempre in un programma C++ è int main()
. Questo è chiamato una funzione. Qualsiasi codice all’interno delle sue parentesi graffe {}
verrà eseguito.
Linea 5: cout
(pronunciato “see-out”) è un oggetto usato insieme all’operatore di inserimento (<<
) per stampare/visualizzare testo. Nel nostro esempio, stamperà “Hello World!”.
Bisogna rendere noto che C++ è sensibile alle maiuscole (case sensitive, come si dice in gergo): “cout” e “Cout” hanno significati diversi.
Nota: Ogni istruzione in C++ termina con un punto e virgola ;
.
Nota: Il corpo di int main()
potrebbe anche essere scritto come: int main () { cout << "Hello World! "; return 0; }
tutto “di fila”, ma sarebbe poi incomprensibile qualora tu o altre persone avreste bisogno di leggere il codice.
Tipi di variabili in C++
Le variabili sono contenitori per memorizzare i valori dei dati.
In C++, ci sono diversi tipi di variabili (definiti con parole chiave differenti), ad esempio:
int
– memorizza numeri interi (numeri interi), senza decimali, come 123 o -123double
– memorizza numeri in virgola mobile, con decimali, come 19.99 o -19.99char
– memorizza singoli caratteri, come ‘a’ o ‘B’. I valori di tipochar
sono racchiusi tra apici singolistring
– memorizza testo, come “Hello World”. I valori di tipostring
sono racchiusi tra virgolette doppiebool
– memorizza valori con due stati: true o false
Un esempio concreto
Ecco pertanto un esempio concreto dove tu stesso puoi provare una variabile:
#include <iostream>
using namespace std;
int main() {
int myNum = 15;
cout << myNum;
return 0;
}
L’output lo puoi verificare di persona

E qui sei ancora sulla parte facile.
Usare più variabili
Ovviamente non si può usare una variabile da sola, ecco un esempio di programma che usa più variabili:
#include <iostream>
using namespace std;
int main() {
int x = 5, y = 6, z = 50;
cout << x + y + z;
return 0;
}

Commenti in C++
I commenti possono essere utilizzati per spiegare il codice C++ e renderlo più leggibile. Possono anche essere utilizzati per prevenire l’esecuzione di codice durante il test di alternative. I commenti possono essere su una singola riga o su più righe.
Commenti su una singola riga
I commenti su una singola riga iniziano con due barre oblique (//).
Qualsiasi testo tra // e la fine della riga viene ignorato dal compilatore (non verrà eseguito).
Commenti su più righe in C++
I commenti su più righe iniziano con /* e terminano con */.
Qualsiasi testo tra /* e */ verrà ignorato dal compilatore: Questo esempio utilizza un commento su una singola riga prima di una riga di codice:
using namespace std;
int main() {
/* il codice sotto è quello di prima
questo è solo per mostrare come funzionano i commenti, lol*/
cout << “Hello World!“; //questo è un commento
return 0;
}

Input da parte dell’utente
Hai già imparato che cout
viene utilizzato per stampare (visualizzare) i valori ed ora utilizzeremo cin
per ottenere l’input dell’utente.
cin
è una variabile predefinita che legge i dati dalla tastiera tramite l’operatore di estrazione (>>).
Nel seguente esempio, l’utente può inserire un numero, che viene memorizzato nella variabile x
. Poi stampiamo il valore di x
:

Tipi di dati in C++
Come spiegato nel capitolo sulle Variabili, una variabile in C++ deve avere un tipo di dato specificato:

Codice più complesso che crea una calcolatrice di base molto rudimentale
Ecco un codice ben più complesso che mette insieme tutto e perché:
#include<iostream>
using namespace std;
int main () {
float n1, n2, risultato;
int selezione;
inizio:
cout<<“seleziona l’operazione (1-4)”<<endl;
cout<<“1) + addizione”<<endl;
cout<<“2) – sottrazione”<<endl;
cout<<“3) * moltiplicazione”<<endl;
cout<<“4) / divisione”<<endl;
cout<<“5) esci”<<endl;
cin>>selezione;
if(selezione<0||selezione>5)
{
cout<<“seleziona un’operazione valida”;
goto inizio;
}
if(selezione==1)
{
cout<<“scrivi il primo addendo: “; cin>>n1;
cout<<“scrivi il secondo addendo: “; cin>>n2;
risultato = n1 + n2;
}
if(selezione==2)
{
cout<<“scrivi il primo numero da sottrarre: “; cin>>n1;
cout<<“scrivi il secondo numero da sottrarre: “; cin>>n2;
risultato = n1 – n2;
}
if(selezione==3)
{
cout<<“scrivi il primo numero da moltiplicare: “; cin>>n1;
cout<<“scrivi il secondo numero da moltiplicare: “; cin>>n2;
risultato = n1 * n2;
}
if(selezione==4)
{
cout<<“scrivi il primo numero da dividere: “; cin>>n1;
cout<<“scrivi il secondo numero da dividere: “; cin>>n2;
risultato = n1 / n2;
}
if(selezione==5)
{
cout<<“grazie per aver usato questo programma”;
return 0;
}
cout<<endl<<“il risultato dell’operazione è: “<<risultato<<endl<<endl;
cout<<“vuoi fare un’altra operazione?”<>selezione;
if(selezione==1)
{
cout<<endl<<endl;
goto inizio;
}
else
{
cout<<“Grazie per aver usato questo programma”;
}
return 0;
}

Il ciclo condizionale “if” serve per dirgli “se fai questo, fai invece quello”, sia chiarto che di norma non si usa il comando “goto”, ma ho voluto semplificare perché la guida è per principianti, solitamente per queste cose si usano le condizioni do e while, il goto è un “residuo” del caro vecchio basic.
Spiegazione dei comandi
Ecco la spiegazione dei vari comandi
Spiegazione della parte iniziale
#include <iostream> // Necessario per l'input e l'output
using namespace std; // Permette di evitare di scrivere 'std::' prima di ogni comando
#include <iostream>
: Questa direttiva include la libreria standard C++ che permette di utilizzare gli oggetti per l’input e l’output (ad esempio,cin
per l’input ecout
per l’output).using namespace
std;
: Con questa riga non è necessario scriverestd::
prima di ogni comando comecout
ecin
. In pratica, permette di usare le funzioni e oggetti della libreria standard senza specificare lo spazio dei nomistd
.

Spiegazione della dichiarazione della variabili
float n1, n2, risultato; // Variabili per i numeri da inserire e il risultato int selezione; // Variabile per memorizzare l'operazione scelta dall'utente
Spiegazione:
float n1, n2, risultato;
: Vengono dichiarate tre variabili di tipofloat
per memorizzare i numeri da inserire (n1 e n2) e il risultato dell’operazione.
int selezione;
: Una variabile di tipoint
per memorizzare l’operazione scelta dall’utente (un numero tra 1 e 5).
Ciclo di selezione dell’operazione
inizio: cout<<"seleziona l'operazione (1-4)"<<endl;
cout<<"1) + addizione"<<endl;
cout<<"2) - sottrazione"<<endl;
cout<<"3) * moltiplicazione"<<endl;
cout<<"4) / divisione"<<endl;
cout<<"5) esci"<<endl;
cin>>selezione;
Spiegazione:
inizio:
: Etichetta utilizzata per il comandogoto
(vedi più avanti). Questo crea un “punto di salto” nel codice.
cout
: Viene utilizzato per stampare le istruzioni a video, chiedendo all’utente di scegliere un’operazione tra 1 e 5.
cin >> selezione;
: Legge il valore inserito dall’utente e lo memorizza nella variabileselezione
.

Controllo dell’input e del numero scelto
if(selezione<0||selezione>5)
{
cout<<"seleziona un'operazione valida";
goto inizio;
}
Spiegazione:
if(selezione < 0 || selezione > 5)
: Se l’utente inserisce un numero fuori dal range (1-5), viene stampato un messaggio di errore.
goto inizio;
: Usa il comandogoto
per tornare all’etichettainizio
e far scegliere di nuovo all’utente l’operazione corretta.
Esecuzione delle operazioni
if(selezione==1)
{
cout<<"scrivi il primo addendo: ";
cin>>n1;
cout<<"scrivi il secondo addendo: ";
cin>>n2;
risultato = n1 + n2;
}
Spiegazione:
Per ogni operazione (addizione, sottrazione, moltiplicazione e divisione), il programma:
- Chiede all’utente di inserire due numeri.
- Esegue l’operazione e memorizza il risultato.
Ogni blocco if
controlla quale operazione è stata scelta e, a seconda della selezione, chiede all’utente i numeri e calcola il risultato.

Gestione dell’uscita
if(selezione==5)
{
cout<<"grazie per aver usato questo programma";
return 0;
}
Spiegazione:
- Se l’utente seleziona l’opzione 5 (uscita), il programma stampa un messaggio di saluto e termina l’esecuzione con
return 0;
Visualizzazione del risultato
cout<<endl<<"il risultato dell'operazione è: "<<risultato<<endl<<endl;
Spiegazione:
- Dopo aver eseguito l’operazione, il programma stampa il risultato sullo schermo.
Ripetere o uscire dal programma
cout<<"vuoi fare un'altra operazione?"<<endl;
cout<<"1) sì"<<endl;
cout<<"Qualsiasi altro numero) esci;"<<endl;
cin>>selezione;
Spiegazione:
- Dopo aver eseguito l’operazione, il programma chiede se l’utente vuole eseguire un’altra operazione.
- Se l’utente inserisce 1, il programma riprende dall’etichetta
inizio
(grazie algoto
), altrimenti stampa il messaggio di saluto e termina.
Uso del goto
goto inizio;
Spiegazione:
- Il comando
goto
viene usato per saltare a un’etichetta definita nel codice. In questo caso, se l’utente inserisce un’operazione non valida o vuole fare un’altra operazione, il programma salta all’etichettainizio
per ripetere il processo di scelta dell’operazione.
Nota: l’uso del goto
non è raccomandato in buona pratica di programmazione, poiché può rendere il codice difficile da seguire e da gestire. Una soluzione migliore sarebbe usare un ciclo come while
o do-while
per gestire la ripetizione delle operazioni, ma qui inizia la parte “difficile” del C++.
Output del codice
Il risultato di questo codice con eventuale output lo puoi vedere qui
Conclusione
C++ è sicuramente un buon linguaggio per iniziare a programmare, ma come vedi è estremamente complesso e questa guida offre solo le basi.
Per il resto buon divertimento!