Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
25/06/11 15:41
LucaLuca
Salve a tutti,
sto leggendo il libro "C++ Fondamenti di programmazione" di Deitel. Un paragrafo porta in esame il puntatore this. Premesso che quanto letto prima l'ho appreso chiaramente (per intenderci, il concetto di puntatore mi è chiaro) vorrei chiedervi alcune delucidazioni a riguardo.

I miei dubbi sono innanzitutto concettuali. Vi riporto parte del testo

"Ogni oggetto può accedere al proprio indirizzo tramite un puntatore di nome this. [...] Il puntatore this viene usato implicitamente per riferire sia i dati che le funzioni membro di un oggetto, e può essere anche utilizzato esplicitamente"

In particolare l'ultima parte non mi è chiara. Vi chiedo gentilmente di spiegarmi questo puntatore o in alternativa di postare link a guide online.

Grazie milleee

P.S. Ho già cercato su google ma non ho trovato nulla di soddisfacente


Edit: Naturalmente anche guide in lingua inglese, non necessariamente italiano
Ultima modifica effettuata da LucaLuca 25/06/11 15:48
aaa
25/06/11 15:48
pierotofy
Quando fai riferimento ad una variabile membro oppure ad un metodo dall'interno della classe che lo contiene:

class A{
  private:
  int i;
  
  void f1(){
     i = 0;  // <-- esempio
  }

  void f2(){
    f1(); // <--- esempio
  }
};


Durante la fase di parsing il compilatore riconoscerà che i membri fanno parte della stessa classe e aggiungerà:

void f1(){
  (*this).i = 0;
}
void f2(){
  (*this).f1();
}


Ovviamente i (*this) sono impliciti e sarebbe ridondanti scriverli, quindi il compilatore si fa carico di inserirli al posto tuo. Ma se vuoi scriverli esplicitamente te stesso (come nel secondo pezzo di codice), puoi farlo.
Il mio blog: piero.dev