Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di cerza
    Registrato dal
    Oct 2009
    Messaggi
    310

    [c++] differenze tra . e ->

    salve a tutti,
    avrei bisogno di capire la differenza che c'è tra il "." e "->", in quanto stò cercando di studiare il c++ ma alcune cose mi sfuggono; tra le altre cose nei primi esempi che ho fatto con classi e oggetti se richiamo oggetto.metodo non funziona se richiamo oggetto->metodo mi fa vedere la lista dei metodi.
    grazie mille per la disponibilità, buona giornata

    maria

  2. #2
    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
    codice:
    Prova unOggetto;
    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)
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di cerza
    Registrato dal
    Oct 2009
    Messaggi
    310
    grazie mille per la grande spiegazione.
    buona giornata

    maria

  4. #4
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.