Konštruktor a ničiteľ v C ++ - Potreby, použitia so syntaxou a príklady

Obsah:

Anonim

Úvod do konštruktora a ničiteľa v C ++

  • Constructor and Destructor v C ++ hrá významnú úlohu v objektovo orientovanom programovacom jazyku ako C ++. Pretože máme triedy a jej objekty v C ++, pri vytváraní nového objektu sa konštruktér môže vždy použiť na inicializáciu objektu, zatiaľ čo keď sa objekt chystá zničiť, deštruktor sa môže použiť na vykonanie požadovaných následných operácií.
  • Keď vytvárame objekt triedy v C ++, možno budete chcieť inicializovať polia triedy s niektorými predvolenými alebo určitými hodnotami. Trieda má svoje polia a metódy. Polia sú väčšinou premenné alebo objekty. Priradením predvolených hodnôt k týmto poľom uľahčujeme naše programovanie. Konštruktor je ako normálna funkcia v rámci triedy a kompilátor ju automaticky volá, keď vytvoríme nový objekt tejto triedy. Pri vytváraní objektu vlastne odovzdávame požadované hodnoty ako argument k objektu, tieto argumenty sa odovzdávajú konštruktorovi triedy. Hodnoty argumentov môžu byť teraz priradené k zodpovedajúcim poliam, ktoré sú k dispozícii v triede. Okrem toho môžeme predvoleným hodnotám priradiť polia, v ktorých neprošli argumenty. Existujú rôzne typy a spôsoby, pomocou ktorých inicializujeme konštruktora v C ++.
  • Konštruktor je ako špeciálna členská funkcia triedy. Kedykoľvek vytvoríme nový objekt, konštruktor sa vykoná. Syntax konštruktora je veľmi jednoduchá, funkcia bude mať rovnaký názov ako syntax triedy, v ktorej je definovaná, a nebude mať žiadny návratový typ, dokonca ani neplatný. Konštruktori sú veľmi užitoční pri prideľovaní konkrétnych hodnôt niektorým členom triedy. Konštruktor sa môže použiť na vykonávanie logiky súvisiacej s triedou v čase vytvorenia inštancie.

Syntax konštruktora

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

Deštruktor v C ++ je tiež špeciálnou členskou funkciou v triede. Deštruktor je volaný automaticky kompilátorom a je vykonaný vždy, keď objekt danej triedy vyjde z rozsahu alebo je odstránený pomocou výrazu mazania na ukazovateľ tohto objektu. Kedykoľvek je objekt zničený kompilátorom, je volaný deštruktor. V deštruktore môžeme vykonávať príkazy, ktoré môžu byť čokoľvek, čo chceme vykonať, keď objekt presahuje rozsah. Následné operácie, ako sú uzavretie spojení, zatváranie súborov atď., Sú niektoré z príkladov, ktoré môžeme vykonať v deštruktore.

Syntax deštruktora

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

Syntax deštruktora je veľmi podobná konštruktoru. Bude mať rovnaké meno ako trieda, v ktorej je definovaná, a nebude mať žiadny návratový typ. Pred menom deštruktora však bude mať znak ~ (vlnovka). Deštruktor sa zvyčajne používa na pridelenie dynamicky pridelenej pamäte pre triedu a jej členov. Destruktory sú veľmi užitočné na vykonávanie operácií po operácii, ktoré sa môžu vykonávať po obchodnej logike.

Prečo potrebujeme konštruktor a ničiteľ v C ++?

C ++ je objektovo orientovaný programovací jazyk. V akomkoľvek objektovo orientovanom programovacom jazyku mapujeme pôvodné entity v skutočnom živote s triedou a objektmi.

Poďme pochopiť, prečo potrebujeme konštruktor a deštruktor v jazyku C ++ príkladom zo skutočného života. Predpokladajme, že máme entitu Box a vytvorili sme pre ňu triedu a budú mať aj objekty, ktoré sa dajú použiť v iných častiach. Teraz bude mať pole určité parametre, ako je výška, dĺžka, šírka atď. A vždy, keď vytvoríme objekt triedy Box, chceme, aby mal nejakú predvolenú hodnotu. Povedzme, že ide o výšku, tento cieľ sa dá dosiahnuť priradením konkrétnej predvolenej hodnoty k výške v konštruktore tejto triedy. Podobne pre ostatné parametre je možné priradiť aj hodnoty. Po použití objektu Box povedzme, že potrebujeme okamžitú akciu alebo zavoláme nejakú funkciu. To je možné dosiahnuť pomocou Destructor v C ++. Požadované príkazy sa pridajú k deštruktoru tejto triedy. Toto sú výhody konštruktora a deštruktora v C ++ v reálnom čase.

Ako Konštruktory a Destruktory pracujú v C ++?

Ako už bolo uvedené vyššie, konštruktor sa zavolá kompilátorom pri každom vytvorení objektu. Ak nedefinujeme konštruktor, kompilátor C ++ pre nás automaticky vygeneruje predvoleného konštruktora. Konštruktor sa používa na pridelenie pamäte, ak je to potrebné, a na zostavenie objektu triedy, zatiaľ čo deštruktor sa používa na vykonanie požadovaného vyčistenia, keď je objekt zničený. Po zničení objektu je kompilátor automaticky vyvolaný deštruktorom. Ak nedefinujeme vlastný deštruktor, kompilátor C ++ vytvorí predvolený deštruktor.

Vytvorenie konštruktora a ničiteľa v C ++? (Príklady)

1. Konštruktor Príklad

Vezmime si rovnaký príklad triedy Box ako deklarátora. Priraďujeme niektoré predvolené hodnoty k výške a hmotnosti boxu.

kód

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

Takže vždy, keď sa vytvorí objekt tejto triedy, vráti objekt typu Box s predvolenými hodnotami definovanými vyššie.

2. Príklad ničiteľa

Kedykoľvek bude objekt Boxu vyradený z rozsahu, vytlačíme nejaký text na konzole v našom príklade. Pri skutočne kódovaní môže byť vykonaná akákoľvek špecifická aktivita.

kód

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;
)
)

Takže vždy, keď sa objekt Boxu vymyká z rozsahu, kompilátor vytlačí text, ako je definované vyššie, na konzole.

záver

Konštruktor a ničiteľ teda hrajú dôležitú úlohu v objektovo orientovanom programovacom jazyku. Konštruktor sa používa na inicializáciu objektu a deštruktor sa používa pri ničení objektu. Konštruktor aj deštruktor sú veľmi užitočné pri programovaní v jazyku C ++.

Odporúčané články

Toto je sprievodca Konštruktorom a Destruktorom v C ++. Tu diskutujeme o potrebách Constructor and Destructor v C ++, o tom, ako používať, rôzne Syntax a Príklady. Viac informácií nájdete aj v ďalších súvisiacich článkoch.

  1. Funkcie poľa C ++
  2. Kopírovanie Constructor v C ++
  3. Úvod do C ++
  4. Druhy konštruktorov v C
  5. Sprievodca Destructor v C #
  6. Destruktor v PHP s príkladmi