C ++: n rakentajan ja tuhoajan esittely

  • C ++: n rakentajalla ja tuhoajalla on merkittävä rooli olio-ohjelmoidussa kielessä, kuten C ++. Koska meillä on luokka ja sen objektit C ++: ssa luotaessa uutta objektia, aina kun rakentajaa voidaan käyttää objektin alustamiseen, kun taas esineen tuhoamisen yhteydessä tuhoajaa voidaan käyttää tarvittavien postitoimintojen suorittamiseen.
  • Kun luot luokan objektin C ++: ssa, saatamme ehkä alustaa luokan kentät joillakin oletusarvoilla tai tietyillä arvoilla. Luokalla on kentät ja menetelmänsä. Kentät ovat enimmäkseen muuttujia tai objekteja. Määrittämällä oletusarvot näille kentille teemme ohjelmoinnistamme helppoa. Rakentaja on kuin luokan normaali toiminto, ja kääntäjä kutsuu sitä automaattisesti, kun luot uuden luokan objektin. Objektia luotaessa välitämme vaaditut arvot argumentiksi objektille, nämä argumentit välitetään luokan rakentajalle. Argumenttiarvot voidaan nyt määrittää vastaaville kentille, jotka ovat käytettävissä luokassa. Lisäksi voimme määrittää oletusarvot kenttiin, joille emme lähetä argumentteja. On olemassa sellaisia ​​erityyppejä ja tapoja, joilla alustamme konstruktorin C ++: ssa.
  • Rakentaja on kuin luokan erityinen jäsentoiminto. Aina kun luot uuden objektin, rakentaja suoritetaan. Konstruktorin syntaksi on hyvin yksinkertainen, funktiolla on sama nimi kuin sen luokan nimellä, jossa se on määritelty, eikä sillä ole mitään paluutapaa, edes tyhjää. Rakentajat ovat erittäin hyödyllisiä osoittaessaan tiettyjä arvoja tietyille luokan jäsenille. Konstruktoria voidaan käyttää luokkaan liittyvän logiikan suorittamiseen hetkellisyyshetkellä.

Konstruktorin syntaksi

class Box (
public:
int height;
//constructor
Box () (
// member initialization
)
)

C ++: n tuhoaja on myös luokan erityinen jäsentoiminto. Kompilaattori kutsuu tuhoajan automaattisesti, ja se suoritetaan aina, kun kyseisen luokan kohde poistuu laajuudesta tai se poistetaan käyttämällä poistolauseketta kyseisen objektin osoittimeen. Aina, kun kääntäjä tuhoaa esineen, häntä kutsutaan. Hävittäjässä voimme suorittaa lauseita, jotka voivat olla mitä tahansa, jotka haluamme suorittaa, kun objekti menee alueen ulkopuolelle. Jälkioperaatiot, kuten yhteyksien sulkeminen, tiedostojen sulkeminen jne., Ovat joitain esimerkkejä, joita voimme suorittaa tuhoajassa.

Hävittäjän syntaksi

class Box (
public:
int height;
//destructor
~Box () (
// post statements
)
)

Hävittäjän syntaksi on hyvin samanlainen kuin rakentaja. Sillä on sama nimi kuin sen luokan nimellä, jossa se on määritelty, eikä sillä ole paluutyyppiä. Kuitenkin vain siinä on ~ (tilde) -merkki ennen hävittäjän nimeä. Tavallisesti tuhoajaa käytetään luokan ja sen jäsenten dynaamisesti varatun muistin sijoittamiseen. Purkajat ovat erittäin hyödyllisiä postitoimintojen suorittamisessa, jotka voidaan suorittaa liiketoimintalogiikan jälkeen.

Miksi tarvitsemme rakentajaa ja tuhoajaa C ++: ssa?

C ++ on olio-ohjelmointikieli. Kaikissa olio-ohjelmointikielissä kartoitamme alkuperäiset tosielämän entiteetit luokan ja objektien kanssa.

Ymmärretään, miksi tarvitsemme rakentajaa ja tuhoajaa C ++: ssa tosielämän esimerkillä. Oletetaan, että meillä on kokonaisuuslaatikko ja olemme luoneet sille luokan, ja siinä on esineitä, joita voidaan käyttää myös muissa osissa. Nyt laatikolla on tiettyjä parametreja, kuten korkeus, pituus, leveys jne. Ja aina kun luomme luokan Box objekti, haluamme sen ottavan jonkin oletusarvon. Oletetaan, että korkeuden suhteen tämä tavoite voidaan saavuttaa osoittamalla tietty oletusarvo korkeudelle kyseisen luokan konstruktorissa. Samoin muille parametreille voidaan myös antaa arvot. Oletetaan sitten, että Boxin objektin käytön jälkeen haluamme jonkin tietyn toiminnan välittömästi tai soitamme jollekin toiminnolle. Tämä voidaan tehdä käyttämällä Destructoria C ++: ssa. Vaadittavat lauseet lisätään kyseisen luokan tuhoajaan. Nämä ovat reaaliaikaisia ​​etuja siitä, että sinulla on rakentaja ja tuhoaja C ++: ssa.

Kuinka rakentajat ja tuhoajat toimivat C ++: ssa?

Kuten aiemmin keskusteltiin, kääntäjä soittaa rakentajalle aina, kun objekti luodaan. Jos emme määrittele rakentajaa, C ++ -kääntäjä luo automaattisesti oletuskonstruktorin meille. Rakentajaa käytetään tarvittaessa muistin varaamiseen ja luokan kohteen rakentamiseen, kun taas tuhoajaa käytetään tarvittaviin puhdistuksiin, kun esine tuhoutuu. Kääntäjä kutsuu tuhoajan automaattisesti, kun esine tuhoutuu. Jos emme määrittele omaa hävittäjäämme, C ++ -kääntäjä luo oletushävittäjän.

Luodaanko rakentajaa ja tuhoajaa C ++: een? (Esimerkit)

1. Rakentajaesimerkki

Otetaanpa sama esimerkki luokan Boxista rakentajan ilmoittamiseksi. Oletetaan joitain oletusarvoja laatikon korkeudelle ja painolle.

Koodi

class Box (
public:
int height;
int weight;
// constructor
Box () (
// member initialization
height = 10;
weight = 20;
)
)

Joten aina, kun tämän luokan objekti luodaan, se palauttaa Box-tyypin objektin oletusarvoilla, kuten edellä on määritelty.

2. Destructor-esimerkki

Aina kun Boxin esine poistuu soveltamisalasta, tulostamme esimerkissä jonkin konsolin tekstin. Tosiasiallisesti koodauksessa voi tapahtua mikä tahansa erityinen toiminta.

Koodi

class Box (
public:
int height;
int weight;
// constructor
Box () (
// member initialization
height = 10;
weight = 20;
)
//destructor
~Box () (
// post statements
cout << “Box Object is being deleted.” << endl;
)
)

Joten aina kun Boxin objekti poistuu laajuudesta, kääntäjä tulostaa tekstin, kuten yllä on määritelty konsoliin.

johtopäätös

Joten, Constructorilla ja Destructorilla on tärkeä rooli olio-ohjelmoidussa kielessä. Objektin alustamiseen käytetään rakentajaa ja hävittäjää käytetään objektin tuhoamiseen. Sekä rakentaja että tuhoaja ovat erittäin hyödyllisiä ohjelmoitaessa C ++ -kielellä.

Suositellut artikkelit

Tämä on opas rakentajalle ja tuhoajalle C ++: ssa. Tässä keskustellaan C ++: n konstruktorin ja Destructorin tarpeista, käytöstä, eri syntaksista ja esimerkeistä. Voit myös käydä läpi muiden aiheeseen liittyvien artikkeleidemme saadaksesi lisätietoja-

  1. C ++ -ryhmän toiminnot
  2. Kopioi rakentaja C ++ -sovellukseen
  3. Johdanto C ++: een
  4. C: n rakentajatyypit
  5. C #: n tuhoajan opas
  6. Hävittäjä PHP: llä esimerkkien avulla