Pointerul this din C++

Configurare noua (How To)

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;

}

Tip solutie

Permanent

Voteaza

(12 din 28 persoane apreciaza acest articol)

Despre Autor

Leave A Comment?