Peamine erinevus - ehitaja vs hävitaja
Enamik programmeerimiskeeli toetab objektorienteeritud programmeerimist (OOP). See on paradigma, mis aitab modelleerida tarkvara või objekti, mis kasutab objekte. OOP parandab tootlikkust ja hooldatavust. OOP-s peetakse kõike objektiks. Objektid luuakse või eksponeeritakse klasside abil. Konstruktor ja Destructor on objektorienteeritud programmeerimisel levinud terminid. Selles artiklis käsitletakse konstruktori ja destruktori erinevust. Konstruktor ja destruktor on klassis liikmete erifunktsioonid. Konstruktoril ja destruktoril on sama nimi kui klassil, kuid destruktoril on tilde (~) märk. Peamine erinevus konstruktori ja destruktori vahel on see, et konstruktorit kasutatakse mälu eraldamiseks objektile, samas kui destruktorit kasutatakse objekti mälu jaotamiseks.
SISU
1. Ülevaade ja põhierinevus
2. Mis on konstruktor
3. Mis on hävitaja
4. Konstruktori ja hävitaja sarnasused
5. Kõrvuti võrdlus - ehitaja vs hävitaja tabelina
6. Kokkuvõte
Mis on konstruktor?
Konstruktor on klassi spetsiaalne liikmefunktsioon, mis eraldab objektile mälu. Seda saab kasutada andmeliikmete väärtuste pakkumiseks. Konstruktorit kutsutakse objekti loomisel. Sellel on sama nimi kui klassi nimel. Konstruktor ei tagasta väärtust. Seetõttu ei sisalda see tagastustüüpi. Konstruktor võib aktsepteerida ka parameetreid. Parameetritega konstruktorit tuntakse kui parameetriga konstruktorit.
Konstruktori näide on järgmine.
avaliku klassi ristkülik {
int pikkus, laius;
avalik ristkülik (int p, int q) {
pikkus = p;
laius = q;
}
avalik int arvuta pindala () {
tagasipöördumine (pikkus * laius);
}
}
Ülaltoodud koodijupi järgi on konstruktoril sama nimi kui klassi nimel. Konstruktori ristkülik aktsepteerib kahte parameetrit. Need on p ja q. Pikkuse jaoks määratakse täisarv väärtus p. Laiusele määratakse täisarv väärtus q. Rakenduses calcualteArea arvutatakse ristküliku pindala leidmiseks pikkuse ja laiuse korrutamine. Põhiprogrammis saab programmeerija luua Rectangle tüüpi objekti ja edastada argumendid. nt ristkülik rect1 = uus ristkülik (2,3). Seejärel kutsutakse parameetriga konstruktor ja määratakse väärtused pikkusele ja laiusele.
Joonis 01: Konstruktor ja hävitaja
Kui on konstruktor, millel pole parameetreid, nimetatakse seda vaikekonstruktoriks. Kui programmeerija ei defineeri konstruktorit, käivitatakse vaikekonstruktor. Kui õpilasena on klass ja kui programmeerija loob tüüpi tüüpi õpilane, nimetatakse vaikekonstruktorit. nt õpilane s1 = uus õpilane (); Klassis võib olla mitu erineva parameetri ja erineva andmetüübiga konstruktorit. Vastavat konstruktorit saab vastavalt kutsuda. Seetõttu võib konstruktoreid üle koormata.
Mis on hävitaja?
Destruktor on klassi eriline liikmefunktsioon. Seda kasutatakse konstruktori loodud objekti mälu eraldamiseks. Destruktor käivitatakse objekti hävitamisel. See teostab enam vajaminevat puhastushoidlat. Nagu konstruktoril, on ka destruktoril sama nimi kui klassil. See sisaldab ka tilde (~) sümbolit.
Destruktor ei anna mingit väärtust. Erinevalt konstruktorist ei aktsepteeri hävitaja ühtegi parameetrit. Niisiis, destruktor ei toeta ülekoormamist. Destruktori deklareerimist peetakse heaks programmeerimistavaks, kuna see vabastab mäluruumi ja seda ruumi saab kasutada mõne muu objekti salvestamiseks. Destruktori süntaks sarnaneb ~ className () {} -ga. nt ~ Ristkülik () {}; Klassis võib olla ainult üks hävitaja.
Millised on konstruktori ja hävitaja sarnasused?
- Nii konstruktor kui ka destruktor on objektidega seotud.
- Nii konstruktor kui ka destruktor ei anna mingit väärtust.
- Nii konstruktorit kui ka destruktorit nimetatakse automaatselt.
Mis vahe on konstruktori ja hävitaja vahel?
Erinev artikkel keskel enne tabelit
Ehitaja vs hävitaja |
|
Konstruktor on klassi eriline liige, mida kasutatakse objektile mälu eraldamiseks. | Destruktor on klassi eriline liige, mida kasutatakse objekti mälu jaotamiseks. |
Kutsumise meetod | |
Konstruktor kutsutakse objekti loomisel. | Destruktorit nimetatakse objekti hävitamisel või kustutamisel. |
Kasutamine | |
Objektide mälu eraldamiseks kasutatakse konstruktorit. | Objektide mälu jaotamiseks kasutatakse hävitajat. |
Parameetrid | |
Konstruktor aktsepteerib parameetreid. | Destruktor ei aktsepteeri parameetreid. |
Konstruktorite ja hävitajate arv | |
Konstruktoreid võib olla mitu, millel on erinev arv parameetreid ja erinevat tüüpi parameetrid. | Klassis võib olla üks hävitaja. |
Täitmise kiirus | |
Konstruktoril on sama nimi kui klassi nimel. | Destruktoril on sama nimi kui klassi nimel koos tilde (~) sümboliga. |
Ülekoormus | |
Konstruktorit saab üle koormata. | Destruktorit ei saa üle koormata. |
Kokkuvõte - ehitaja vs hävitaja
OOP on tarkvaraarenduses levinud paradigma. See võib lihtsustada keerukat projekti. OOP-s kasutatakse konstruktorit ja destruktorit. Konstruktoril ja destruktoril on sama nimi kui klassil, kuid destruktoril on ~ märk. Konstruktori ja destruktori erinevus seisneb selles, et konstruktorit kasutatakse mälu eraldamiseks objektile, samas kui destruktorit kasutatakse objekti mälu jaotamiseks.
Laadige alla Constructor vs Destructor PDF-fail
Selle artikli PDF-versiooni saate alla laadida ja kasutada võrguühenduseta eesmärkidel, nagu tsiteeritud. Laadige PDF-versioon alla siit: Erinevus konstruktori ja hävitaja vahel