Ključna razlika – konstruktor proti destruktorju
Večina programskih jezikov podpira objektno usmerjeno programiranje (OOP). To je paradigma, ki pomaga modelirati programsko opremo ali program z uporabo predmetov. OOP izboljša produktivnost in vzdržljivost. V OOP se vse obravnava kot objekt. Objekti so ustvarjeni ali instancirani z uporabo razredov. Konstruktor in destruktor sta pogosta izraza v objektno usmerjenem programiranju. Ta članek obravnava razliko med konstruktorjem in destruktorjem. Konstruktor in destruktor sta posebni funkciji člana v razredu. Konstruktor in destruktor imata isto ime kot razred, destruktor pa ima znak tilda (~). Ključna razlika med konstruktorjem in destruktorjem je v tem, da se konstruktor uporablja za dodelitev pomnilnika objektu, medtem ko se destruktor uporablja za sprostitev pomnilnika objekta.
Kaj je konstruktor?
Konstruktor je posebna funkcija člana v razredu za dodeljevanje pomnilnika objektu. Uporablja se lahko za zagotavljanje vrednosti za podatkovne člane. Ko je objekt ustvarjen, se prikliče konstruktor. Ima isto ime kot ime razreda. Konstruktor ne vrne nobene vrednosti. Zato ne vsebuje povratnega tipa. Konstruktor lahko sprejme tudi parametre. Konstruktor s parametri je znan kot parametriran konstruktor.
Primer konstruktorja je naslednji.
javni razred Pravokotnik{
int dolžina, širina;
javni pravokotnik(int p, int q){
dolžina=p;
širina=q;
}
javno int izračunArea(){
vrnitev (dolžinaširina);
}
}
Glede na zgornji del kode ima konstruktor isto ime kot ime razreda. Konstruktor Rectangle sprejme dva parametra. To sta p in q. Dolžini je pripisana celoštevilska vrednost p. Celo število q je dodeljeno širini. V calcu alteArea je množenje dolžine in širine izračunano za iskanje ploščine pravokotnika. V glavnem programu lahko programer ustvari objekt tipa Rectangle in posreduje argumente. npr. Pravokotnik rect1=nov pravokotnik(2, 3). Nato se pokliče parametrirani konstruktor in dodeli vrednosti dolžini in širini.
Slika 01: Konstruktor in destruktor
Če obstaja konstruktor brez parametrov, se imenuje privzeti konstruktor. Če programer ne definira konstruktorja, bo priklican privzeti konstruktor. Če obstaja razred kot Student in ko programer ustvari objekt tipa Student, se pokliče privzeti konstruktor. npr. Študent s1=nov študent(); V razredu je lahko več konstruktorjev z različnimi parametri in različnimi tipi podatkov. Ustrezen konstruktor lahko ustrezno pokličemo. Zato so lahko konstruktorji preobremenjeni.
Kaj je Destructor?
Destruktor je posebna funkcija članica v razredu. Uporablja se za sprostitev pomnilnika za objekt, ki ga ustvari konstruktor. Destruktor se prikliče, ko je objekt uničen. Izvaja čistilno shranjevanje, ki ni več potrebno. Tako kot konstruktor ima tudi destruktor isto ime kot razred. Vsebuje tudi simbol tilde (~).
Destruktor ne vrne nobene vrednosti. Za razliko od konstruktorja destruktor ne sprejema nobenih parametrov. Torej destruktor ne podpira preobremenitve. Deklaracija destruktorja velja za dobro programsko prakso, ker sprosti pomnilniški prostor in ta prostor se lahko uporabi za shranjevanje nekaterih drugih objektov. Sintaksa destruktorja je podobna ~className() { }. npr. ~Pravokotnik() {}; V razredu je lahko samo en destruktor.
Kakšne so podobnosti med konstruktorjem in destruktorjem?
- Konstruktor in destruktor sta povezana z objekti.
- Konstruktor in destruktor ne vrneta nobene vrednosti.
- Konstruktor in destruktor se pokličeta samodejno.
Kakšna je razlika med konstruktorjem in destruktorjem?
Konstruktor proti destruktorju |
|
Konstruktor je poseben član v razredu, ki se uporablja za dodeljevanje pomnilnika objektu. | Destruktor je poseben član razreda, ki se uporablja za sprostitev pomnilnika objekta. |
Metoda priklica | |
Konstruktor se prikliče, ko je objekt ustvarjen. | Destruktor se pokliče, ko je objekt uničen ali izbrisan. |
Uporaba | |
Konstruktor se uporablja za dodeljevanje pomnilnika za objekte. | Destruktor se uporablja za sprostitev pomnilnika za objekte. |
Parametri | |
Konstruktor sprejema parametre. | Destruktor ne sprejema parametrov. |
Število konstruktorjev in destruktorjev | |
Obstaja lahko več konstruktorjev z različnim številom parametrov in različnimi vrstami parametrov. | V razredu je lahko en sam destruktor. |
Hitrost izvajanja | |
Konstruktor ima isto ime kot ime razreda. | Destruktor ima isto ime kot ime razreda s simbolom tilde (~). |
Preobremenitev | |
Konstruktor je lahko preobremenjen. | Destruktorja ni mogoče preobremeniti. |
Povzetek – konstruktor proti destruktorju
OOP je običajna paradigma pri razvoju programske opreme. Lahko poenostavi kompleksen projekt. V OOP se uporabljata konstruktor in destruktor. Konstruktor in destruktor imata isto ime kot razred, destruktor pa ima znak ~. Razlika med konstruktorjem in destruktorjem je v tem, da se konstruktor uporablja za dodelitev pomnilnika objektu, medtem ko se destruktor uporablja za sprostitev pomnilnika objekta.
Prenesite PDF za Constructor vs Destructor
Različico PDF tega članka lahko prenesete in jo uporabite za namene brez povezave v skladu z opombo o citiranju. Prenesite različico PDF tukaj: Razlika med konstruktorjem in destruktorjem