L'operatore punto (.) consente di accedere ai membri avendo direttamente l'oggetto.
L'operatore freccia (->) consente di accedere ai membri avendo un puntatore all'oggetto.
Mi spiego meglio: supponi di avere
codice:
class Prova
{
public:
void MetodoFutile()
{
// ...
}
};
Se io ho
per richiamare il metodo MetodoFutile userò il punto:
codice:
unOggetto.MetodoFutile();
se invece ho un puntatore a Prova
codice:
Prova * puntatore = &unOggetto;
allora userò l'operatore freccia:
codice:
puntatore->MetodoFutile();
In effetti l'operatore freccia è semplicemente una "scorciatoia": puoi ottenere lo stesso risultato dereferenziando il puntatore con l'operatore * e quindi applicando l'operatore punto: questo codice è esattamente equivalente al precedente:
codice:
(*puntatore).MetodoFutile();
(questo naturalmente se non c'è in ballo l'overloading degli operatori -> e *, ma lasciamo stare)