PDA

View Full Version : [C++] due domande sulle classi


AngeL)
07-07-2006, 20:56
oggi pomeriggio ho iniziato a leggere qualcosa sulla oop e mi sono accorto di due strane cose che non erano spiegate:
this->(variabile)=(variabile)
e
_(variabile)=(variabile)

cosa significano?

giovessj
08-07-2006, 10:06
In merito a This->variabile=variabile posso dirti ke:
-Nella chiamata di una funzione membro f il compilatore introduce un primo
parametro nascosto che è l’indirizzo dell’oggetto proprio a cui f viene
applicata.
Ora Tale parametro e’ un puntatore costante il cui nome è this.
All’atto della chiamata &c viene ricopiato in this e attraverso tale
puntatore la funzione opera sull’oggetto proprio:

es. chiamata di funzione:
c.f() oppure p->f()

Se consideri ad esempio la funzione int get_n() const;
la sua implementazione sarà:

int get_n() const{return this->n};
dove il valore di this nella funzione non puo' essere modificato poichè this è un puntatore a costante.

AngeL)
10-07-2006, 10:39
grazie :)

Black imp
11-07-2006, 04:12
this quando sei all'interno di una funzione della classe è sottointeso però si usa per chiarezza soprattutto quando manca la fantasia e uno dei parametri della funzione ha lo stesso nome di un membro della classe...


class pizza
{
int ciccia; // è sottointeso essere private

public:

Pizza();
int SetQuantitaCiccia(int);
}

ora definisco la funzione membro:

int pizza::SetQuantitaCiccia(int ciccia)
{

// se adesso scrivi ciccia=ciccia non ha senso, assegna il parametro ciccia a se stesso

this->ciccia=ciccia // corretto: assegna il par ciccia al membro ciccia

}

oppure:

int pizza::SetQuantitaCiccia(int quantita)
{
ciccia=quantita;
// adesso è inequivocabile per il compilatore che ciccia è il membro della classe ma è più leggibile scrivere this->ciccia=quantita

}