Go Down

Topic: this. in c++ (Read 531 times) previous topic - next topic

padoang

Nei libri che ho trovo che quando all'interno di un metodo richiami un metodo della medesima classe devi scrivere:

this.metodo

ma arduino sembra non accettare il termine this. Per sbaglio l'ho tolto lasciando solamente il nome del metodo chiamato, strano ma cosi'
non da errori e agisce correttamente.
C'e' un sito dove si possano trovare tali divergenze col c++ ansi?
giorgio

sciorty

Secondo me dipende dall'IDE che usi per sviluppare. Ad esempio in visual basic quando devi richiamare la proprietà di un oggetto all'interno dello stesso lo potevi fare con me.quellocheè() oppure nomeoggetto.quellocheè(), se non ricordo male!

flz47655

in genere si legge this->metodo();
infatti se inserisco codice come questo:

class Pippo{
void A(){}
void B(){ this->A(); }
};

viene compilato correttamente :)

lesto

la differenza tra punto e freccia è dato dal fatto se si sta lavorando con puntatori o con la variabile (oggetto) direttamente. (o almeno, così funziona con le strutture in C ansi, quindi dubito che si siano discostati dallo standard)

trovo molto strano che non funzioni il this, è un comando facoltativo che alcuni dicono di mettere sempre, altri di evitarlo il più possibile (in pratica serve per richiamare una variabile o funzione locale con lo stesso nome di una esterna... cosa che sarebbe da evitare a priori. Non mi viene in mente altro, se non per passare se stessi ad un'alta funzione)

edit: this è un puntatore, quindi si usa sempre "->"
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

padoang

Ora ho capito, si deve usare this->metodo quando si stanno scrivendo gli oggetti.
Per me usare l'istanza della classe, anche se funziona, e' da evitare in quanto se creo due istanze una delle due non puo' andar bene.
allora in C++ this->,   in Delphi  Self.,   in Basic  me.
grazie dei consigli

Go Up