ce este pointer
DESCRIPTION
pointerTRANSCRIPT
Ce este pointer-ul this? Pointerul this este folosit implicit pentru a referi datele membre şi funcţiile membre ale unui
obiect El poate fi folosit şi explicit Tipul pointerului this depinde de tipul obiectului şi de caracterul const sau non-const al
funcţiei membre apelate de obiect Într-o funcţie membră non-const a clasei Employee, pointerul this are tipul de dată Employee*
const Într-o funcţie membră const a clasei Employee, pointerul this are tipul de dată const
Employee* const Exemplu
class Test{ public: Test( int = 0); // constructor implicit void print() const; private: int x;};Test::Test( int a ) { x = a; }void Test::print() const{ cout << " x = " << x << "\n this->x = " << this->x << "\n(*this).x = " << (*this).x << endl;}int main(){ Test testObject(12); testObject.print(); return 0;}
Rezultat: x = 12 this->x = 12(*this).x = 12
Accesul membrilor clasei prin pointerul thisoperatorul săgeată -> pentru pointerul this la obiect: this->xoperatorul punct . pentru pointerul this dereferenţiat: (*this).x
Folosirea parantezelor care încadrează pointerul dereferenţiat *this este obligatorie pentru că operatorul . are precedenţă mai mare decât *
Tratarea exceptiilor in C++
Tratarea exceptiilor permite tratarea problemelor care pot aparea intr-un program intr-un mod mai organizat. Avantajul tratarii exceptiilor il costituie o automatizare mai mare a codului.
Tratarea exceptiilor se realizeaza prin blocuri try…catch si pot fi aruncate cu throw.
try – delimiteaza sectiunea de cod unde se cauta exceptiile,
catch - este folosit pentru a determina tipul exceptiei si modul in care vor fi tratate exceptiile prinse
throw - se poate apela de oriunde din codul programului, intr-un bloc try…catch
sau functie.
Daca o eroare este aruncata si nu este prinsa intr-un bloc try…catch ea va determina o terminare anormala a programului prin apelul functiilor abort() sau terminate().