Operatori in C e C++: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
|||
Riga 13:
Nel caso degli operatori, il numero degli operandi e la priorità dell’operatore sovraccaricato sono le stesse dell’operatore predefinito, mentre il nuovo operatore può essere definito come una funzione membro oppure come una ''funzione friend'' (funzione amica).
== Proprietà degli operatori ==
Ogni operatore possiede delle proprietà, in modo tale da permettere l'interpretazione univoca del significato di ogni singola espressione. Gli esempi che seguono sono tutti applicabili al linguaggio C++ e, a seconda dei casi, anche al C.
=== Posizione ===
Un operatore può precedere gli operandi (o argomenti), seguirli oppure né precederli né seguirli. In questi casi parleremo rispettivamente di operatori ''prefissi'', ''postfissi'' oppure ''infissi''.
=== Numero di operandi ===
Ogni operatore può avere un numero diverso di operandi (arietà). <syntaxhighlight lang="c++">
a[b]
</syntaxhighlight>Nel caso riportato, l'operatore di indicizzazione possiede due operandi, ossia le parentesi quadre. L'arietà può essere anche di tre operandi, come nel caso degli operatori condizionali, riportato di seguito:<syntaxhighlight lang="c++">
e1 ? e2 : e3
</syntaxhighlight>
=== Precedenza degli operatori ===
Ogni operatore possiede una propria precedenza, rappresentata attraverso un numero intero. <syntaxhighlight lang="c++" line="1">
#include <iostream>
using namespace std;
int main () {
int a = 5;
int b = 6;
int c = 8;
int op = a+b*c;
cout << op << endl; // Stampa a schermo
return 0;
}
</syntaxhighlight>Se eseguiamo questo semplice codice attraverso un compilatore, il risultato a schermo sarà '''53''' e non 19, poiché l'operatore <code>*</code> possiede la precedenza sull'operatore <code>+</code>, nonostante esso sia compilato subito dopo.
==== Tabella delle precedenze ====
Nella tabella seguente sono elencati tutti gli operatori in base alla loro precedenza. Essi sono sempre implementabili su C++, mentre alcuni non lo sono in C.
== Tabelle degli operatori ==
|