Situatie
Apelarea unei functii membru pozitioneaza un pointer la obiectul de tipul clasei asociate. In momentul apelului, acest pointer apare ca un argument suplimentar nevizibil. El poate fi referit, totusi, cu ajutorul cuvantului cheie this (aici). Utilizarea de baza a cuvantului cheie this este legata de descrierea functiilor membru care manipuleaza pointeri. Deoarece this este un cuvant cheie in C++, el nu poate fi declarat explicit iar, in orice functie membru nestatica a unei clase, pointerul this este declarat implicit ca nume_clasa *this si initializat sa adreseze spre obiectul pentru care este apelata functia membru. Utilizarea pointerului this poate fi pusa in evidenta in functia care insereaza o componenta intr-o lista dublu inlantuita.
Solutie
Exemplu:
class clsinsert
{
clsinsert *anterior;
clsinsert *urmator;
public:
void finsert(clsinsert *);
……………………….
};
void clsinsert::finsert(clsinsert *ptr)
{
//utilizare implicita, ptr->urmator=this->urmator;
ptr->urmator=urmator;
//utilizare explicita a lui this
ptr->anterior=this;
//utilizare implicita, this->urmator->anterior=ptr;
urmator->anterior=ptr;
//utilizare implicita, this->urmator=ptr;
urmator=ptr;
}
Leave A Comment?