Gli operatori C++ in sintesi: i principali operatori
Gli operatori C++ sono le basi di un’efficiente programmazione in C++ e sono importanti sia per chi desidera imparare a programmare in C++ sia per chi è già esperto di questo linguaggio di programmazione. Il significato di alcuni operatori è facilmente intuibile, mentre in altri casi potrebbe non essere chiaro a prima vista.
Che cosa sono gli operatori C++?
In linea di massima, un operatore è semplicemente il simbolo di un’operazione che può fare riferimento a un singolo operando o, solitamente, a più operandi. Nella maggior parte dei casi, come risultato ottenete un nuovo valore. Un tipico esempio sono gli operatori aritmetici che avete imparato a scuola, come “+” per l’addizione e “-” per la sottrazione di due numeri. Gli operatori C++ non si differenziano solo in base al loro scopo funzionale, ma un ulteriore importante criterio di distinzione è 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 | Condizione if-else: condition? <br>condition_true : condition_false
|
Priorità dell’operatore
Come per gli operatori aritmetici imparati a scuola o gli operatori Python, anche per quelli C++ esistono priorità o precedenze, utilizzate per indicare in quale ordine devono essere applicati gli operatori. Per gli operatori aritmetici valgono le ben note regole per l’ordine delle operazioni, riassumibili in “prima i puntini, poi i trattini”, ma anche con altri operatori C++ è necessario seguire regole ben precise.
if (var1 && var2 || var3) {
do_something();
}
cppNell’esempio qui sopra, viene applicata per prima l’espressione logica dopo l’operatore “if”. Qui, inoltre, l’operatore && (AND logico) ha la precedenza sull’operatore || (OR logico). Quindi, se la valutazione di “var1 && var2” o la valutazione di “var3” restituisce il valore “true”, viene eseguita la chiamata alla funzione “do_something”.
Se volete andare sul sicuro, potete anche usare le parentesi.
Sovraccarico di operatori in C++
Per la maggior parte degli operatori C++ potete usare il cosiddetto sovraccarico, ossia potete attribuire a un operatore già presente un nuovo significato in un dato contesto. Per eseguire il sovraccarico degli operatori in C++ dovete utilizzare la parola chiave “operatore”, che dovete inserire dopo l’operatore C++ che desiderate sovraccaricare. Per il resto, il sovraccarico degli operatori in C++ funziona come il sovraccarico di funzioni.
Lo spazio web acquistabile su IONOS è l’ideale per mettere i vostri progetti in C++ al sicuro online. Avrete anche a disposizione un grande spazio di memoria disponibile e una comoda installazione in un clic.
Gli operatori C++ più importanti
Operatori aritmetici
Già a scuola avete imparato alcuni degli operatori aritmetici di C++: sono utilizzati per fare operazioni coi numeri e danno un nuovo numero come risultato. A parte due eccezioni (il “più” unario e il “meno” unario, che potete considerare come segni), gli operatori aritmetici sono tutti operatori binari.
Operatore C++ | Significato | Esempio |
---|---|---|
+
|
Addizione/“più” unario | 6 + 4
|
-
|
Sottrazione/“meno” unario | 10 - 6
|
*
|
Moltiplicazione | 10* 3
|
/
|
Divisione fra numeri interi | 20 / 10
|
%
|
Modulo | 21 % 2
|
Operatori di assegnazione
In C++, come nella maggior parte dei linguaggi di programmazione, i valori sono memorizzati all’interno di variabili. Per assegnare dei valori concreti a tali variabili, sono necessari degli operatori speciali.
Operatori di assegnazione semplici
Operatore C++ | Significato | Esempio |
---|---|---|
=
|
Assegnazione semplice | x = 3
|
++
|
Incremento | x++
|
--
|
Decremento | x--
|
Operatori di assegnazione combinati
Oltre agli operatori di assegnazione semplici, C++ supporta anche gli operatori combinati. Si tratta di operazioni aritmetiche o bit per bit che vengono associate contemporaneamente a un’assegnazione di valore:
int x = 4;
x += 2;
cppNell’esempio di codice precedente, un’assegnazione semplice assegna il valore numerico 4 alla variabile x. Successivamente, viene utilizzato l’operatore di assegnazione combinato “=” per eseguire un’addizione aritmetica e memorizzare il valore risultante direttamente in x. Per esteso, l’assegnazione si presenterebbe in questo modo: “x=x2”.
Operatore C++ | Significato | Esempio |
---|---|---|
+=
|
Addizione e assegnazione | x += 2
|
-=
|
Sottrazione e assegnazione | x -= 2
|
*=
|
Moltiplicazione e assegnazione | x* = 2
|
/=
|
Divisione e assegnazione | x /= 2
|
%=
|
Modulo e assegnazione | x %= 2
|
&=
|
AND bit per bit e assegnazione | b &= 1
|
<<=
|
Spostamento bit a sinistra e assegnazione | b <<= 1
|
>>=
|
Spostamento bit a destra e assegnazione | b >>= 1
|
^=
|
XOR bit per bit e assegnazione | b ^= 1
|
` | =` | OR bit per bit e assegnazione |
Operatori logici C++
È possibile utilizzare gli operatori logici C++ per confronti di logica proposizionale tra due espressioni. A eccezione del NOT logico, che si riferisce sempre a un’affermazione e ne nega il valore logico, gli operatori logici sono binari.
Operatore C++ | Significato | Esempio |
---|---|---|
&&
|
AND logico | true && true
|
` | ` | |
!
|
NOT logico | !true
|
Operatori di confronto
Gli operatori di confronto sono operatori C++ che analizzano la relazione tra due elementi. Sono quindi operatori binari. A eccezione del confronto a tre vie, che restituisce un numero, il valore restituito da tutti gli operatori di confronto in C++ è un valore logico.
Operatore C++ | Significato | Esempio |
---|---|---|
==
|
Uguaglianza | a == b
|
!=
|
Disuguaglianza | a != b
|
<=
|
Minore o uguale | a <= b
|
>=
|
Maggiore o uguale | a >= b
|
<
|
Minore | a < b
|
>
|
Maggiore | a > b
|
<=>
|
Confronto a tre vie | a <=> b
|
Manipolazione di bit
Esistono operatori C++ bit per bit che permettono di accedere ai singoli bit in modo efficiente al fine di aumentare la velocità dei programmi. Questi operatori sono particolarmente importanti per la programmazione orientata alle prestazioni.
Operatore C++ | Significato | Esempio |
---|---|---|
&
|
AND bit per bit | a & b
|
` | ` | OR bit per bit |
^
|
XOR bit per bit | a ^ b
|
~
|
Negazione bit per bit | ~a
|
<<
|
Spostamento verso sinistra | a << b
|
>>
|
Spostamento verso destra | a >> b
|
Gestione della memoria
C++ è un linguaggio macchina e per questo motivo mette a disposizione una serie di operatori che aiutano nella gestione della memoria.
Operatore C++ | Significato | Esempio |
---|---|---|
&
|
Determinazione dell’indirizzo | &x
|
sizeof()
|
Determina il fabbisogno di memoria di un’espressione | sizeof(x)
|
new
|
Crea un nuovo oggetto e restituisce 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 utilizzare i seguenti operatori C++.
Operatore C++ | Significato | Esempio |
---|---|---|
*
|
Dereferenziazione dei puntatori, restituisce 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;
|