Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  

 
CATEGORII DOCUMENTE





AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Referirea la elementele claselor. Pointerul this

c

+ Font mai mare | - Font mai mic







DOCUMENTE SIMILARE

Trimite pe Messenger
Preluarea adresei unui element al unui tablou
Starea ecranului
Cautare in tabele
Functii de tip void
Variabile globale
Functii pentru pozitionare
Implementarea grafurilor cu ajutorul matricei de adiacenta
Returnarea pointerilor
Tipul de date inregistrare (RECORD)
Exemple de utilizare a functiilor de intrare/iesire de nivel inferior

Referirea la elementele claselor. Pointerul this

Referirea la datele respectiv functiile membru ale claselor se face cu ajutorul operatorilor . sau -> ca si in cazul referirii la elementele unei structuri. De exemplu daca se declara:

vector v;

vector* p;

atunci afisarea vectorului v respectiv a vectorului referit de pointerul p se face prin:



v.afiseaza();

p->afiseaza();

In interiorul functiilor membru insa referirea la datele respectiv functiile membru ale clasei se face simplu prin numele acestora fara a fi nevoie de operatorul punct ( . ) sau sageata ( -> ). De fapt compilatorul genereaza automat un pointer special, pointerul this, la fiecare apel de functie membru, si foloseste acest pointer pentru identificarea datelor si functiilor membru.

Pointerul this va fi declarat automat ca pointer catre obiectul curent. In cazul exemplului de mai sus pointerul this este adresa vectorului v respectiv adresa referita de pointerul p.

Daca in interiorul corpului functiei membru afiseaza se utilizeaza de exemplu data membru d, atunci ea este interpretata de catre compilator ca si this->d.

Pointerul this poate fi folosit si in mod explicit de catre programator, daca natura problemei necesita acest lucru.

In continuare prezentam un exemplu complet de clasa vector, cu functii membru pentru ridicarea la patrat respectiv afisarea elementelor vectorului, precum si o functie membru pentru adunarea a doi vectori. Fisierul vector3.cpp (contine clasa vector):

#include <iostream.h>

#include <stdlib.h>

class vector

  void lapatrat();

  vector suma(vector& v1);

  void afiseaza();

};

vector::vector(int* e1, int d1)

void vector::lapatrat()

vector vector::suma(vector& v1)

  int* x = new int[d];

  for(int i = 0; i < d; i++)

    x[i] = e[i] + v1.e[i];

  vector y(x, d);

  delete [] x;

  return y;

}

void vector::afiseaza()

Fisierul vector4.cpp (contine functia main):

#include 'vector3.cpp'

int main() ;

  vector v(x, 5);

  int y[] = ;

  vector t(y, 5);

  v.suma(t).afiseaza();

  return 0;

}

DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 333
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Distribuie URL

Adauga cod HTML in site



Termeni si conditii de utilizare | Contact
© SCRIGROUP 2019. All rights reserved