Gli operatori C++ sono le basi di un’ef­fi­cien­te pro­gram­ma­zio­ne in C++ e sono im­por­tan­ti sia per chi desidera imparare a pro­gram­ma­re in C++ sia per chi è già esperto di questo lin­guag­gio di pro­gram­ma­zio­ne. Il si­gni­fi­ca­to di alcuni operatori è fa­cil­men­te intuibile, mentre in altri casi potrebbe non essere chiaro a prima vista.

Che cosa sono gli operatori C++?

In linea di massima, un operatore è sem­pli­ce­men­te il simbolo di un’ope­ra­zio­ne che può fare ri­fe­ri­men­to a un singolo operando o, so­li­ta­men­te, a più operandi. Nella maggior parte dei casi, come risultato ottenete un nuovo valore. Un tipico esempio sono gli operatori arit­me­ti­ci che avete imparato a scuola, come “+” per l’addizione e “-” per la sot­tra­zio­ne di due numeri. Gli operatori C++ non si dif­fe­ren­zia­no solo in base al loro scopo fun­zio­na­le, ma un ulteriore im­por­tan­te criterio di di­stin­zio­ne è l’arietà o rango degli operatori:

Arietà Numero di operandi Esempio
Operatori unari Un operando Negazione logica: !var_name
Operatori binari Due operandi Addizione: value1 + value2
Operatori ternari Tre operandi Con­di­zio­ne if-else: condition? <br>condition_true : condition_false

Priorità dell’operatore

Come per gli operatori arit­me­ti­ci imparati a scuola o gli operatori Python, anche per quelli C++ esistono priorità o pre­ce­den­ze, uti­liz­za­te per indicare in quale ordine devono essere applicati gli operatori. Per gli operatori arit­me­ti­ci valgono le ben note regole per l’ordine delle ope­ra­zio­ni, rias­su­mi­bi­li in “prima i puntini, poi i trattini”, ma anche con altri operatori C++ è ne­ces­sa­rio seguire regole ben precise.

if (var1 && var2 || var3) {
    do_something();
}
cpp

Nell’esempio qui sopra, viene applicata per prima l’espres­sio­ne logica dopo l’operatore “if”. Qui, inoltre, l’operatore && (AND logico) ha la pre­ce­den­za sull’operatore || (OR logico). Quindi, se la va­lu­ta­zio­ne di “var1 && var2” o la va­lu­ta­zio­ne di “var3” re­sti­tui­sce il valore “true”, viene eseguita la chiamata alla funzione “do_something”.

Se volete andare sul sicuro, potete anche usare le parentesi.

So­vrac­ca­ri­co di operatori in C++

Per la maggior parte degli operatori C++ potete usare il co­sid­det­to so­vrac­ca­ri­co, ossia potete at­tri­bui­re a un operatore già presente un nuovo si­gni­fi­ca­to in un dato contesto. Per eseguire il so­vrac­ca­ri­co degli operatori in C++ dovete uti­liz­za­re la parola chiave “operatore”, che dovete inserire dopo l’operatore C++ che de­si­de­ra­te so­vrac­ca­ri­ca­re. Per il resto, il so­vrac­ca­ri­co degli operatori in C++ funziona come il so­vrac­ca­ri­co di funzioni.

Consiglio

Lo spazio web ac­qui­sta­bi­le su IONOS è l’ideale per mettere i vostri progetti in C++ al sicuro online. Avrete anche a di­spo­si­zio­ne un grande spazio di memoria di­spo­ni­bi­le e una comoda in­stal­la­zio­ne in un clic.

Gli operatori C++ più im­por­tan­ti

Operatori arit­me­ti­ci

Già a scuola avete imparato alcuni degli operatori arit­me­ti­ci di C++: sono uti­liz­za­ti per fare ope­ra­zio­ni coi numeri e danno un nuovo numero come risultato. A parte due eccezioni (il “più” unario e il “meno” unario, che potete con­si­de­ra­re come segni), gli operatori arit­me­ti­ci sono tutti operatori binari.

Operatore C++ Si­gni­fi­ca­to Esempio
+ Addizione/“più” unario 6 + 4
- Sot­tra­zio­ne/“meno” unario 10 - 6
* Mol­ti­pli­ca­zio­ne 10* 3
/ Divisione fra numeri interi 20 / 10
% Modulo 21 % 2

Operatori di as­se­gna­zio­ne

In C++, come nella maggior parte dei linguaggi di pro­gram­ma­zio­ne, i valori sono me­mo­riz­za­ti all’interno di variabili. Per assegnare dei valori concreti a tali variabili, sono necessari degli operatori speciali.

Operatori di as­se­gna­zio­ne semplici

Operatore C++ Si­gni­fi­ca­to Esempio
= As­se­gna­zio­ne semplice x = 3
++ In­cre­men­to x++
-- De­cre­men­to x--

Operatori di as­se­gna­zio­ne combinati

Oltre agli operatori di as­se­gna­zio­ne semplici, C++ supporta anche gli operatori combinati. Si tratta di ope­ra­zio­ni arit­me­ti­che o bit per bit che vengono associate con­tem­po­ra­nea­men­te a un’as­se­gna­zio­ne di valore:

int x = 4;
x += 2;
cpp

Nell’esempio di codice pre­ce­den­te, un’as­se­gna­zio­ne semplice assegna il valore numerico 4 alla variabile x. Suc­ces­si­va­men­te, viene uti­liz­za­to l’operatore di as­se­gna­zio­ne combinato “=” per eseguire un’addizione arit­me­ti­ca e me­mo­riz­za­re il valore ri­sul­tan­te di­ret­ta­men­te in x. Per esteso, l’as­se­gna­zio­ne si pre­sen­te­reb­be in questo modo: “x=x2”.

Operatore C++ Si­gni­fi­ca­to Esempio
+= Addizione e as­se­gna­zio­ne x += 2
-= Sot­tra­zio­ne e as­se­gna­zio­ne x -= 2
*= Mol­ti­pli­ca­zio­ne e as­se­gna­zio­ne x* = 2
/= Divisione e as­se­gna­zio­ne x /= 2
%= Modulo e as­se­gna­zio­ne x %= 2
&= AND bit per bit e as­se­gna­zio­ne b &= 1
<<= Spo­sta­men­to bit a sinistra e as­se­gna­zio­ne b <<= 1
>>= Spo­sta­men­to bit a destra e as­se­gna­zio­ne b >>= 1
^= XOR bit per bit e as­se­gna­zio­ne b ^= 1
` =` OR bit per bit e as­se­gna­zio­ne

Operatori logici C++

È possibile uti­liz­za­re gli operatori logici C++ per confronti di logica pro­po­si­zio­na­le tra due espres­sio­ni. A eccezione del NOT logico, che si riferisce sempre a un’af­fer­ma­zio­ne e ne nega il valore logico, gli operatori logici sono binari.

Operatore C++ Si­gni­fi­ca­to Esempio
&& AND logico true && true
` `
! NOT logico !true

Operatori di confronto

Gli operatori di confronto sono operatori C++ che ana­liz­za­no la relazione tra due elementi. Sono quindi operatori binari. A eccezione del confronto a tre vie, che re­sti­tui­sce un numero, il valore re­sti­tui­to da tutti gli operatori di confronto in C++ è un valore logico.

Operatore C++ Si­gni­fi­ca­to Esempio
== Ugua­glian­za a == b
!= Di­su­gua­glian­za a != b
<= Minore o uguale a <= b
>= Maggiore o uguale a >= b
< Minore a < b
> Maggiore a > b
<=> Confronto a tre vie a <=> b

Ma­ni­po­la­zio­ne di bit

Esistono operatori C++ bit per bit che per­met­to­no di accedere ai singoli bit in modo ef­fi­cien­te al fine di aumentare la velocità dei programmi. Questi operatori sono par­ti­co­lar­men­te im­por­tan­ti per la pro­gram­ma­zio­ne orientata alle pre­sta­zio­ni.

Operatore C++ Si­gni­fi­ca­to Esempio
& AND bit per bit a & b
` ` OR bit per bit
^ XOR bit per bit a ^ b
~ Negazione bit per bit ~a
<< Spo­sta­men­to verso sinistra a << b
>> Spo­sta­men­to verso destra a >> b

Gestione della memoria

C++ è un lin­guag­gio macchina e per questo motivo mette a di­spo­si­zio­ne una serie di operatori che aiutano nella gestione della memoria.

Operatore C++ Si­gni­fi­ca­to Esempio
& De­ter­mi­na­zio­ne dell’indirizzo &x
sizeof() Determina il fab­bi­so­gno di memoria di un’espres­sio­ne sizeof(x)
new Crea un nuovo oggetto e re­sti­tui­sce i puntatori object* pointer = new object()
delete Elimina un oggetto delete object

Accesso ai dati per oggetti e puntatori

Per accedere a singoli membri di oggetti o alle aree di memoria dei puntatori potete uti­liz­za­re i seguenti operatori C++.

Operatore C++ Si­gni­fi­ca­to Esempio
* De­re­fe­ren­zia­zio­ne dei puntatori, re­sti­tui­sce l’area di memoria *pointer = 3;
. Accesso ai membri di un oggetto object.member = 2;
-> Accesso ai membri di un oggetto con un puntatore objectpointer->member = 2;
Vai al menu prin­ci­pa­le