Skirtumas tarp konstruktoriaus ir naikintojo

Autorius: Monica Porter
Kūrybos Data: 13 Kovas 2021
Atnaujinimo Data: 17 Gegužė 2024
Anonim
Destructors in C++
Video.: Destructors in C++

Turinys

Pagrindinis skirtumas

Konstruktorius apibūdinamas kaip išskirtinis metodas, naudojamas struktūrai ar klasei programavimo kalbomis, kurios padeda suteikti pradinę vertę to paties tipo elementui. Puslapyje naikintojas apibūdinamas kaip išskirtinis metodas, naudojamas nuolatos vykdomai programai sunaikinti.


Palyginimo diagrama

PagrindasKonstruktoriusNaikintojas
ApibrėžimasIšskirtinis metodas, naudojamas struktūrai ar klasei programavimo kalbomis, kurios padeda suteikti pradinę vertę to paties tipo daiktui.Išskirtinis metodas, naudojamas nuolat veikiančios programos naikinimui.
GamtaUnikalus pajėgumas, kuris iškviečiamas pateikus klasės klausimą.Nedažni gebėjimai, kurie vadinami natūraliai, kai klasės klausimas ištrinamas arba paliekama taikymo sritis.
AtmintisNorėdami skirti atmintį pridėtam elementui.Baigti objekto atmintį.
SkambinaJis sukviečiamas automatiškai, kai tik sukuriame naują objektą.Jis iškviečiamas automatiškai, kai blokas susijaudina arba programa pasibaigia.

Kas yra konstruktorius?

Konstruktorius apibrėžiamas kaip išskirtinis metodas, naudojamas struktūrai ar klasei programavimo kalbomis, kurios padeda suteikti pradinę vertę to paties tipo daiktui. Šis terminas tampa naudingas, kai turime tą patį klasės pavadinimą arba objekto nariams suteikiame reikšmes, kurios gali likti vartotojo apibrėžtos arba numatytosios. Konstruktorius atrodo kaip strategijos pavyzdys; tačiau tai skiriasi nuo technikos tuo, kad ji neturi vienareikšmio grąžos pobūdžio, ji nėra patikrinama ir nėra įgyta, ir ji, beje, turi įvairius laipsnių modifikatorių standartus. Konstruktoriai reguliariai turi tą patį vardą iš skelbiančios klasės. Jie turi užduotį įstatyti klausimo informacijos asmenis ir nustatyti klasės invariantą, nuklysti, jei invariantas negalioja. Tinkamai sudarytas konstruktorius paskesnį protestą palieka teisinėje valstybėje. Nuolatiniai daiktai turi būti tokioje būsenoje kaip konstruktorius. Konstruktorius gali būti paskelbtas naudojant bet kurį iš modifikatorių. Kad ir kaip būtų, kompiliatorius pateikia numatytąjį nustatymą, jei pateksite į modifikatorių, kuris nėra apibūdinamas klasėje. Tikėtina, kad konstruktorius bus paskelbtas privačiu, klasės negalima nustatyti ar nustatyti, todėl jos negalima akimirksniu įgyvendinti.Dalis pagrindinių šio darbo aspektų; Logika, įskaitant operacijas, kurios turėtų būti vykdomos tam tikru atveju programoje - pavyzdžiui, atidarius duomenų bazės susiejimą, ji neturėtų būti sudaryta konstruktoriuje. Panašiai, kai naudojami numanomi klasės konstruktoriai, pirminės klasės konstruktorius turėtų būti perduotas teisingais parametrais.


Kas yra naikintojas?

Naikintojas apibrėžiamas kaip išskirtinis metodas, naudojamas nuolatos vykdomai programai sunaikinti. Kai kurie svarbiausi šio veiksmo veiksmai yra krūvos atkūrimo procesas, objekto gyvavimo metu paskirta erdvė, failo uždarymas ir duomenų bazės jungčių redagavimas kartu su tinklo išteklių išleidimu. Tai gali atsitikti, kai jo gyvavimo laikas yra susijęs su apimtimi, o vykdymas palieka laipsnį, kai jis bus įdiegtas į kitą klausimą, kurio gyvenimas baigiasi, arba kai jis buvo paskirstytas palaipsniui ir aiškiai užfiksuotas. Pagrindinė jo egzistavimo priežastis yra atlaisvinti turtą, pavyzdžiui, atminties priskyrimus, atvirus dokumentus ar priedus, duomenų bazių susiejimus, turto užraktus ir kt., Kurie buvo gauti dėl klausimo, atsižvelgiant į jo gyvavimo laiką, ir panaikinti registraciją nuo įvairių medžiagų, kurios gali saugoti nuorodos į tai. Naikintojai yra aiškiai vadinami C ++. Bet kokiu atveju C # ir „Java“ atveju situacija nėra tokia, nes daiktų paskirstytos atminties paskyrimu ir atvykimu iš tikrųjų rūpinasi miesto darbuotojas. Nors C # ir „Java“ destruktoriai nėra deterministiški, C # destruktoriams užtikrinama, kad jie bus pašaukti „The.NET runtime“. Bet kokiu atveju, Java baigėjai turi būti aiškiai pakviesti, nes jų kūrimas nėra užtikrintas. Dalis pagrindinės veiklos, kurią atlieka ši įmonė, dalis; Automatinis konjunkcija ir neleidžiamas aiškus kliento kodo skambinimas, neleidžiama perkrauti ar palikti palikimo, pereiti prie modifikatorių ar parametrų, kurie nenustatomi, skambučio prašymas sunaikinti klasę, priklausančią klasei, yra nuo artimiausio iki mažiausio.


Pagrindiniai skirtumai

  1. Konstruktorius apibrėžiamas kaip išskirtinis metodas, naudojamas struktūrai ar klasei programavimo kalbomis, kurios padeda suteikti pradinę vertę to paties tipo daiktui. Puslapyje naikintojas apibūdinamas kaip išskirtinis metodas, naudojamas nuolatos vykdomai programai sunaikinti.
  2. Konstruktorius yra unikalus pajėgumas, kuris atitinkamai vadinamas, kai kyla klausimas apie klasę. Kita vertus, naikintojas yra nepaprasta padėtis, kuri vadinama natūraliai, kai klasės klausimas ištrinamas arba paliekama taikymo sritis.
  3. Pagrindine konstruktoriaus užduotimi tampa atminties paskirstymas pridėtam elementui. Kita vertus, pagrindinė naikintojo užduotis yra baigti objekto priskirtą atmintį.
  4. Konstruktorius turi savybių priimti įvairius argumentus, pridėtus už konstrukcijos ribų, kita vertus, griovėjas tokių argumentų nesiima.
  5. Konstruktorius iškviečiamas automatiškai, kai tik sukuriame naują objektą. Priešingai, naikintojas iškviečiamas automatiškai, kai blokas susijaudina arba programa pasibaigia.
  6. Konstruktoriai visada egzistuoja iš eilės einančių užsakymų ir todėl gauna tą patį pavadinimą. Kita vertus, naikintojai visada būna vadinami atvirkštine tvarka, todėl gaunami priešingi vardai.

Skirtumas tarp atviro ir uždarojo

Monica Porter

Gegužė 2024

Daugeli žmonių neupranta, kaip reikia tarti kirtingu žodžiu ir jų turimu kiemeni, ne kartai trumpa žodi gali turėti du kiemeni, o ilgi žodžiai - vieną kiemenį. Ilgiauią vieno kiemen žodį „creeched“ ud...

Jogurtas vs jogurtas - koks skirtumas?

Monica Porter

Gegužė 2024

Jogurta Jogurta, jogurta arba jogurta (arba iš turkų kalbo: jogurta) yra maita, gaunama fermentuojant pieną. Jogurtui gaminti naudojamo bakterijo yra žinomo kaip jogurto kultūro. Laktozę fermentuoja...

Šviežios Žinutės