ce este pointer

3
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 this

Upload: constantin-sirbu

Post on 08-Apr-2016

3 views

Category:

Documents


0 download

DESCRIPTION

pointer

TRANSCRIPT

Page 1: Ce Este Pointer

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 *

Page 2: Ce Este Pointer

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().