Sunteți pe pagina 1din 1

Constructorii snt un tip special de funcie membru, avnd acelai nume ca i

numele clasei, nu returneaz rezultat i snt apelai automat la instanierea unei


clase, fie ea static sau dinamic. Ei au scopul de a atribui valori iniiale
elementelor membri, dar pot efectua i unele operaii, cum ar fi, alocarea dinamic
de memorie, deschiderea unui fiier .a.
Apelul constructorului se efectueaz n momentul declarrii unui obiect.
Destructorii dezactiveaz toate funciile unui obiect, l distruge i snt apelai
automat la eliminarea unui obiect, la ncheierea timpului de via n cazul static,
sau la apelul unui delete n cazul dinamic. De regul, destructorii snt utilizai n
cazul, cnd constructorii efectueaz alocri dinamice de memorie. Destructorul are
acelai nume ca i constructorul, fiind precedat de semnul ~.
Destructorii obiectelor membri snt apelai, dup ce destructorul obiectului
principal a fost executat. Dac obiectul membru este compus din alte obiecte,
atunci se va proceda la executarea destructorilor obiectelor incluse. Destructorii
obiectelor membri snt apelai n ordine invers, n care acetea apar n declaraia
clasei.
Din punct de vedere cronologic, constructorul este apelat dup alocarea
memoriei necesare, deci n faza final a crerii obiectului, iar destructorul naintea
eliberrii memoriei aferente, deci n faza iniial a distrugerii sale.
Constructorii i destructorii se declar i se definesc similar cu celelalte
funcii membri, dar prezint o serie de caracteristici specifice:

numele lor coincide cu numele clasei creia ii aparin; destructorii se disting de


constructori prin faptul c numele lor este precedat de caracterul
nu pot returna nici un rezultat
nu se pot utiliza pointeri ctre constructori sau destructori
constructorii pot avea parametri, destructorii insa nu. Un constructor fr
parametri poart denumirea de constructor implicit.
n care o clasa nu dispune de constructori sau destructori, compilatorul de C++
genereaz automat un constructor, respectiv destructor, implicit.

S-ar putea să vă placă și