Constructorul și destructor în c, purecodecpp

Destructor este definită în liniile 34 - 37. Pentru simplificare se va afișa pur și simplu un șir în loc în program, în cazul lucrărilor. Linia 43 - declararea obiectului de clasă și transmite datele pentru a înregistra în domeniu. Apoi lucra constructorul cu parametrii. Și în linia 46 - a declanșat un constructor implicit.

Constructorul și destructor în c, purecodecpp

Vedem că destructor va încărca automat de două ori (deoarece cele două clase de obiecte au fost în program). Acesta funcționează atunci când programul de lucru este completat și toate datele sunt distruse.

  • Constructorul și destructor ar trebui să fie publice;
  • Constructorul și destructor nu se întoarce de tip;
  • nume de clasa constructor și destructor trebuie să fie la fel;
  • Constructorul poate lua parametri. Distrugător nu prezintă parametri;
  • La definirea unui destructor înainte de numele simbolului ar trebui să fie adăugate
;
  • Designerii pot fi oarecum, dar ele trebuie să fie semnătură diferită (numărul parametrilor primite, de exemplu);
  • Distrugător în clasa trebuie să fie definit doar unul.
  • În scopul de a menține site-ul nostru - click pe cutia de monede și alege orice mod convenabil.

    admin.

    >> Un obiect este declarat o dată în timpul definiției de clasă - o linie 25. Când începe programul constructorului acestui obiect va funcționa chiar înainte de intrarea în funcția principală.

    Nu contează dintr-o dată, „definind“ sau mai târziu. L-am sunat înainte, pentru că este un obiect la nivel mondial.

    >> Cel mai adesea, rolul său este de a face de memorie dinamic, care iese in evidenta constructorul obiectului.

    În cazul în care obiectul este generat într-o memorie - care da, este necesar să se scrie un destructor mâini și eliberați-l.
    Dar, în cazul dumneavoastră, memoria dinamică nu este alocată, dar încă mai au nevoie de un destructor (în mod corect este de a distruge obiectul). Dar, în exemplul dvs. nu a putut scrie deloc - în cazul în care nu există nici un destructor în clasa - aceasta va crea un destructor implicit - aceasta va elimina obiectul corect, dar memoria alocata dinamic in mod natural nu este liber.

    Cu toate acestea, există în C ++ indicii inteligente, și când să le folosească - este aproape întotdeauna posibil să se bazeze pe destructor implicit)).

    nu este afectat de o mulțime de întrebări cu privire la subiectul articolului, cum ar fi:
    - lista de constructor de inițializare;
    - destructor virtuale;
    - un constructor copie;
    - constructori implicite;
    - o excepție în constructor și destructor;
    - etc.

    Este descris toate? )

    admin.

    Desigur, vor exista articole. Constructorul de copiere - este necesar să se ia în considerare un articol separat. Despre constructorul implicit - adăugați la acest articol.

    articole similare