Skip to content

L'operatore Member-of-Pointer (Freccia)

L’operatore member-of-pointer, comunemente chiamato operatore freccia (->), esegue due operazioni contemporaneamente:

  1. Dereferenzia un puntatore.
  2. Accede a un membro dell’oggetto puntato.

Questo operatore è molto utile per ridurre la frizione notazionale (cioè la difficoltà o fastidio di scrivere sintassi complessa) quando gestisci puntatori a strutture o classi.

Molto spesso, quando passi oggetti pesanti (come grandi classi) a una funzione, lo farai tramite puntatore (o reference) per evitare copie costose. Se quella funzione ha bisogno di accedere ai metodi o ai membri pubblici dell’oggetto, userai l’operatore freccia.

Vediamo un esempio usando una nostra struttura fittizia ClockOfTheLongNow:

L’utilizzo di clock_ptr->set_year(2020) è un comodo e leggibile rimpiazzo per la sintassi alternativa.

Potresti infatti ottenere lo stesso risultato combinando l’operatore di dereferenziazione (*) e l’operatore membro (.) usando le parentesi per forzare la precedenza degli operatori:

(*clock_ptr).set_year(2020);

Tuttavia, come puoi intuire, questa sintassi è più goffa e prolissa. L’operatore freccia è universalmente preferito per la sua eleganza.