Uvod v preglasitev v C ++

Prekoračitev v C ++ je eden od načinov za doseganje polimorfizma v času teka, pri katerem spremenimo vedenje iste metode. Na splošno otroški razred podeduje funkcije člana in člane podatkov iz osnovnega razreda. Kadar pa je naša potreba po preglasitvi funkcionalnosti v otroškem razredu, moramo uporabiti prevladujočo funkcijo. Prevladovanje daje prednost metodam, da imajo isto ime tako v osnovnem razredu kot v izpeljanem razredu. Omogoča nam spreminjanje funkcijskega vedenja, ki je prisotno v osnovnem razredu, v izpeljanih razredih glede na naše potrebe.

Kako prevladovanje deluje v C ++?

Preden razumemo prevladujoče, najprej razumemo polimorfizem. Dobesedni pomen polimorfizma je veliko oblik, tj. Ima več oblik ene posebne stvari. V objektno usmerjenem programskem jeziku je to ena od uporabnih lastnosti. Pri dedovanju dosežemo polimorfizem s preglasovanjem funkcij ali metod, kadar imata osnovni in izvedeni razred isto deklaracijo funkcije člana, vendar bo njuna definicija drugačna.

Da bi to naredili, moramo najprej podedovati od razreda v izpeljani razred. Potem bi morali predložiti različne opredelitve glede na potrebe za katero koli od metod osnovnega razreda, ki je spet znotraj izpeljanega razreda. Šele takrat se reče, da je ta funkcija preglašena, postopek po korakih pa imenujemo preglasitev funkcije.

Recimo, da vzamemo scenarij, v katerem mora naša aplikacija spremeniti vedenje metode osnovnega razreda v izpeljanem razredu, potem bi morali uporabiti funkcijo prevladovanja . Za preglasitev funkcije v izpeljanem razredu moramo imeti v podrejenem razredu isti podpis, tudi imena funkcij morajo biti enaka v obeh bazah in izpeljanih razredih. Tu podpis pomeni uporabo iste vrste podatkov in zaporedja parametrov, ki jih je treba posredovati v funkciji. Če ni potrebe po parametrih, potem v osnovni funkciji ne potrebujemo nobenega parametra, niti otroške funkcije. Spodaj imamo nekaj točk, na katere moramo biti pozorni, preden uporabimo prevladujoče.

  • V programiranju C ++ bo prevladovanje primer polimorfizma izvajanja časa ali dinamičnega polimorfizma.
  • Preglasitev je mogoča le v metodah, ki so prisotne v izvedenih razredih, ker je metoda razveljavljena v izpeljanem razredu iz osnovnega razreda.
  • Da bi dosegli preglasitev, bi morale biti funkcije v osnovnih in izvedenih razredih isto ime, isti tip vrnitve in enaki parametri.

Metoda, ki jo razveljavi deklaracija prepisa, imenujemo metoda overridden base. Osnovni razred bo vseboval to metodo. Iz tega osnovnega razreda je podedovana nova izvedba, imenovana metoda preglasitve. Ko ustvarimo objekt izpeljanega razreda in pokličemo funkcijo člana, ki obstaja tako v osnovnem kot izpeljanem razredu, bo funkcija člana osnovnega razreda prezrta in funkcija člana izpeljanega razreda se bo priklicala.

Spodaj so zahteve za preglasitev metode:

  • Prva in najpomembnejša stvar je, da bi bilo dedovanje od osnovnega do izpeljanega razreda, ker preglasitve funkcij ni mogoče izvesti v istem razredu. Da bi to dosegli, potrebujemo osnovni razred in izpeljani razred.
  • Na novo definirana funkcija mora imeti popolnoma enako deklaracijo v osnovnih in izpeljanih razredih. Kaj to pomeni? To pomeni, da morajo imeti funkcije isto ime, isti podpis in isti seznam parametrov.

Primer preglasitve

Koda

class Animal
(
public:
void Message ( )
(
cout << "Hello there!! I am Animal";
)
);
class Dog: public Animal
(
public:
void Message ( )
(
cout << "I am Dog!!";
)
)

V zgornjem primeru je funkcija Message () prepisana v izpeljanem razredu.

Primer s koraki

1. Poglejmo primer s funkcijo main (), da bolje razumemo prevladujočo vlogo.

2. Ustvarite osnovni razred s katerim koli imenom. Tukaj uporabljam Animal. Napišite način, da prikažete nekaj sporočila. To bo naša razveljavljena metoda, ki jo bomo preglasili v dednem razredu. Znotraj metode napišite nekaj sporočila za tiskanje.

class Animal
(
public void Message( )
(
cout << "Hello there!! I am Animal";
)
)

3. Zdaj ustvarite še enega psa razreda. Tokrat ga bomo podedovali od osnovnega razreda, ki smo ga ustvarili prej, tj. Animal. Za dedovanje uporabimo simbol ':'.

class Dog: public Animal

4. Tu izjavimo isto funkcijo Message () za različno izvajanje in napišemo neko sporočilo. Prepričajte se, da se ime metode in podpis v izpeljanem razredu ujemata z imenom metode in podpisom v osnovnem razredu.

public void Message ( )
(
cout << "Hey!! I am Dog";
)

5. Za preverjanje prevladujočega stanja potrebujemo še en razred. Ustvari razred s katerim koli imenom. V notranjosti pišejo glavno funkcijo.

class ExecutionClass
(
int Main( )
(
)
)

6. Ustvarite objekt nadrejenega razreda in sprožite funkcijo s pomočjo predmeta razreda. To bo sprožilo način sporočila, ki je prisoten v razredu Živali.

Animal animalObject;
animalObject.Message( );

7. Zdaj ustvarite predmet izpeljanega razreda in pokličite metodo sporočila. S tem se prikliče metoda Sporočila razreda Dog.

Dog dogObject;
dogObject.Message( );

8. Kakšen bo rezultat te kode? Lahko uganite? To je prikazano spodaj.

Izhod:

9. V zgornjem primeru pokličemo funkcijo z istim imenom in podpisom, pri čemer uporabljamo objekt, ustvarjen za izpeljani in osnovni razred. V obeh primerih bodo za osnovni in izpeljani razred poklicane različne različice funkcije.

Zaključek

V tem članku smo razumeli način preglasitve v C ++, potrebo po prevladovanju metode, primere v resničnem svetu načela prevladovanja, način, kako to doseči in primer preglasitve z uporabo kode. Zaključimo lahko, da je prevladovanje ena izmed uporabnih lastnosti polimorfizma v C ++, s katerim lahko spremenimo vedenje metode osnovnega razreda v izpeljanem razredu.

Priporočeni članki

To je vodnik za Prevlado v C ++. Tukaj razpravljamo o delu Overriding v C ++, preprost primer z različnimi koraki. Obiščite lahko tudi druge naše sorodne članke, če želite izvedeti več -

  1. Nizi v C ++
  2. Uvod v C ++
  3. Ukazi C ++
  4. Kopiraj konstruktor v C ++
  5. Vodnik za preglasitev v OOP-jih
  6. Prevladovanje v Javi