Konštruktory triedy C ++

C Class Constructors



Konštruktory sú ako funkcie. Tieto sa používajú na inicializáciu hodnôt a predmetov triedy. Tieto konštruktory sa spustia pri vytváraní objektu triedy. Konštruktor priamo nevracia žiadnu hodnotu. Aby sme získali hodnotu konštruktora, musíme popísať samostatnú funkciu, pretože konštruktor nemá žiadny návratový typ. Konštruktor sa líši od jednoduchej funkcie rôznymi spôsobmi. Pri generovaní objektu sa vytvorí konštruktor. Je definovaná vo verejnom segmente triedy.

V tomto článku sa budeme zaoberať všetkými týmito typmi konštruktorov s príkladmi.







Príklad 1

Toto je ilustrácia predvoleného konštruktora. Ako vieme, konštruktéry sa predvolene vytvoria automaticky, keď vytvoríme objekt triedy. Toto sa nazýva implicitné vytváranie. Konštruktory majú rovnaký názov ako názov triedy. Uvažujme o súbore s kódom c ++ konštruktéra, pretože vieme, že trieda má dve možnosti, súkromnú a verejnú. Súkromná časť obsahuje dátové premenné, zatiaľ čo verejná časť je pre funkcie načítané akýmkoľvek objektom. Konštruktor je teda definovaný aj vo verejnej časti.



Celé číslo()

{

X=päťdesiat;

a=dvadsať;

};

V tomto konštruktéri sú premenným priradené hodnoty. Ak chceme hodnoty načítať ako výstup, musíme ich vytlačiť v hlavnom programe.







Po definovaní konštruktora je trieda zatvorená. Pri vstupe do hlavného programu vykonáme vytlačenie hodnôt pomocou objektu. Objekt vždy pristupuje ku konštruktérom, pretože ide o časti triedy. Vytváranie objektov je veľmi jednoduché. Vykonáva sa tak, že sa uvedie s názvom triedy. V tomto prípade je to celé číslo. Hodnota bude načítaná bodovou metódou. t.j. a.x.

V Ubuntu môžeme vidieť výstup zdrojového kódu z terminálu. Prístup použitý na získanie výstupu je celkom ľahký. Najprv sa kód skomplikuje a potom sa spustí. Na proces kompilácie používame kompilátor G ++. Rovnako ako v prípade C používame GCC.



$ G++ -alebo filec filec.c

./súbor c

-O slúži na uloženie výstupu do súboru.

Príklad 2

Na tomto obrázku vysvetlíme parametrizované konštruktory. Na rozdiel od predchádzajúceho príkladu môžeme argumenty postúpiť aj konštruktérom z hlavného programu. Keď je objekt vygenerovaný, tieto hodnoty sú automaticky odoslané do premenných prítomných v konštruktore, aby prijali hodnotu. Niektoré z použití parametrických konštruktorov sú.

  • Pri inicializácii sa používa na inicializáciu rôznych premenných s rôznymi hodnotami vnútri konštruktorov.
  • Používa sa pri preťažovaní konštruktérov. Je definovaný ďalej v článku.

Teraz sa pozrime na ilustráciu, ktorú sme popísali, na vypracovanie tohto konceptu. Trieda má názov celé číslo, takže meno konštruktéra bude určite rovnaké. V parametroch konštruktora sú dve celočíselné hodnoty typu. Tieto sa inicializujú, aby akceptovali hodnoty, ktoré sú odoslané z hlavného programu ako volanie funkcie.

Celé číslo( intX,inta)

{

TO=X;

B=a;

};

V predchádzajúcom príklade boli premenným vo vnútri konštruktora priradené hodnoty. Zatiaľ čo v tomto konštruktéri sú premenné priradené premenným, ktoré majú hodnotu.

Ak chceme zobraziť, musíme definovať funkciu, ktorá vráti hodnotu, pretože nie je možné pristupovať k tejto inicializovanej premennej priamo z konštruktora.

intgetX()

{

vrátiť sado;

};

Teraz uvidíme hlavnú časť programu. Tu, keď je objekt vytvorený, môžete vidieť hodnoty v sekcii parametrov.

Celé číslo v(70,55); {implicitne}

celé číslo v=celé číslo(10,pätnásť); {explicitné}

A aby sme zobrazili výsledok, zavoláme funkcie vytvorené v triede pomocou objektu. tj. v.getx ().

Spôsob získavania záznamov je rovnaký, ako bol zavedený predtým.

Príklad 3

Tento príklad sa zaoberá kopírovaním konštruktora triedy. Skopírovaný konštruktor sa používa na inicializáciu objektu iným objektom podobnej triedy, do ktorej patrí. Tento konštruktor kopíruje údaje prítomné v jednom objekte do druhého. Parametre tohto konštruktora obsahujú adresu objektu triedy. Uvažujme uvedené príklady, v ktorých sme zaviedli dve premenné rovnakých dátových typov, aby k nim mal prístup každá funkcia v rámci triedy. Konštruktor prijme hodnoty prostredníctvom premennej. Skopírovaný konštruktor zároveň dostane iba objekt. A pomocou tohto objektu budú načítané hodnoty.

Stena(stena&obj)

{

Dĺžka=obj.dĺžka;

Výška=obj.výška;

}

Musíme vypočítať plochu, takže funkcia pre tento výpočet je definovaná tu. Keď sa zavolá, vráti hodnotu do hlavnej funkcie. Teraz budeme sledovať hlavný program kódu

Volanie funkcie skopírovaného konštruktora bude vyzerať takto.

Nástenná stena 2=stena 1;

Objekt zavolá skopírovaný konštruktor a dáta cez prvý objekt sa skopírujú cez neho. Ďalej zavoláme funkciu na výpočet plochy cez oba objekty.

Z výstupu môžete vidieť, že výsledok z oboch konštruktorov je rovnaký. To znamená, že objekt úspešne skopíroval všetky údaje.

Príklad 4

Toto je ilustrácia preťaženia konštruktéra. Stáva sa to, keď musíme v rámci triedy použiť viac ako jednu funkciu. Preťaženie konštruktora sa riadi pokynmi parametrizovaných konštruktérov. Všetky konštruktory v triede majú podobný názov ako trieda. Ale každému z konštruktérov sú priradené iné parametre. Pri vytváraní objektu sa každý konštruktor volá podľa argumentu.

Uvažujme daný príklad, v ktorom sme použili tri konštruktory. Jeden je bez akéhokoľvek argumentu. Druhý obsahuje jeden argument, zatiaľ čo tretí obsahuje dva argumenty. Tento obrázok je podobný predchádzajúcemu. Pri výpočte plochy v samostatnej funkcii popísanej vo vnútri triedy.

// Konštruktor s dvoma argumentmi

tvar(intX,inta)

{

do=X;

b=a;

};

Teraz, keď sa pohneme k hlavnému programu, vidíme, že keď spustíme objekt triedy, predvolene sa volá konštruktor bez argumentu. Teraz musíme zavolať ďalších konštruktérov s rôznymi objektmi s rôznymi argumentmi.

Tvary;

Tvar s2(8);

Tvar s3(4,2);

Funkcia, pomocou ktorej môžeme hodnotu zobraziť, sa volá pomocou rovnakého vytvoreného objektu.

Na zobrazenie výstupu použijeme rovnakú metódu príkazového terminálu kompiláciou a spustením kódu prítomného v súbore.

Z výstupu môžeme vidieť, že odpoveď je pre každý konštruktor rovnaká.

Záver

V tomto návode sme videli základy konštruktérov a ich funkčnosti vrátane toho, ako ich preťažiť. Na inicializáciu premenných s hodnotami sa používajú konštruktory.