Uvod u prevladavanje u C ++

Prekoračenje u C ++ jedan je od načina postizanja polimorfizma u toku vremena u kojem modificiramo ponašanje iste metode. Dječja klasa nasljeđuje funkcije člana i članove podataka iz osnovne klase. Ali kada je naša potreba za nadjačavanjem funkcionalnosti u dječjoj klasi, tada moramo koristiti prevladavanje funkcija. Poništavanje daje privilegiju metodama da imaju isto ime i u osnovnoj i u izvedenoj klasi. Omogućuje nam da promijenimo ponašanje funkcije prisutno u osnovnoj klasi, u izvedenim klasama, prema našim potrebama.

Kako prevladavanje funkcionira u C ++?

Prije nego što shvatimo prevladavajuće, najprije razumemo polimorfizam. Doslovno značenje polimorfizma je mnogo oblika, tj. Ima višestruke oblike jedne određene stvari. U objektno programskom jeziku ovo je jedno od korisnih svojstava. U nasljeđivanju se postiže polimorfizam, nadglasavanjem funkcija ili metoda, kada i osnovna i izvedena klasa imaju istu deklaraciju o funkciji člana, ali njihova će definicija biti drugačija.

Da bismo to učinili, prvo moramo naslijediti iz klase u izvedenu klasu. Tada bismo trebali dati različite definicije prema potrebi, za bilo koju od metoda osnovne klase opet unutar izvedene klase. Tek tada se ta funkcija preuveličava, a postupak korak po korak naziva se preglasavanjem funkcije.

Recimo da uzmemo scenarij u kojem naša aplikacija ima zahtjev za promjenom ponašanja metode osnovne klase u izvedenom razredu, tada bismo trebali koristiti značajku poništavanja . Da bismo nadjačali funkciju u izvedenoj klasi, moramo imati isti potpis u podređenoj klasi, a također i imena funkcija trebaju biti ista u obje baze i izvedenim klasama. Ovdje potpis znači upotrebu iste vrste podataka i niza parametara koji se prosljeđuju u funkciji. Ako ne postoje parametri, tada ne trebamo koristiti nijedan parametar u osnovnoj funkciji, kao ni podređenu funkciju. Ispod imamo nekoliko točaka na koje moramo imati na umu prije nego što upotrijebimo presudne zahtjeve.

  • U programiranju C ++ prevladavanje bit će primjer polimorfizma izvođenja vremena ili dinamičkog polimorfizma.
  • Poništavanje je moguće samo u metodama prisutnim u izvedenim klasama jer je metoda nadjačana u izvedenom razredu iz osnovne klase.
  • Da bi se postiglo prevladavanje, funkcije prisutne u osnovnim i izvedenim klasama trebaju imati isti naziv, isti tip povratka i iste parametre.

Metoda koja se nadjačava deklaracijom preglasavanja naziva se metoda preglasavanja baze. Bazna klasa će sadržavati ovu metodu. Nova izvedba zvana, override metoda naslijeđena je iz ove osnovne klase. Kada stvorimo objekt izvedene klase i nazovemo funkciju člana koja postoji i u osnovnoj i u izvedenoj klasi, zanemarit će se funkcija člana osnovne klase i pozvati će funkcija izvedene klase.

Ispod su zahtjevi za prevladavanje metoda:

  • Prvo i najvažnije je da se nasljeđivanje mora nalaziti od baze do izvedene klase jer se preklapanje funkcija ne može obavljati unutar iste klase. Da bismo to postigli potrebna nam je osnovna klasa i izvedena klasa.
  • Redefinirana funkcija treba imati točno istu deklaraciju u osnovnim i izvedenim klasama. Što to znači? To znači da bi funkcije trebale imati isti naziv, isti potpis i isti popis parametara.

Primjer prevladavanja

Kodirati

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

U gornjem primjeru, funkcija Message () nadjačava se u izvedenom razredu.

Primjer s koracima

1. Pogledajmo primjer pomoću glavne () funkcije kako bismo bolje razumjeli presudno.

2. Stvorite osnovnu klasu s bilo kojim nazivom. Ovdje koristim Animal. Napisite način za prikaz neke poruke za prikaz. Ovo će biti naša poništena metoda koju ćemo prevladati u naslijeđenom razredu. Unutar metode napišite neku poruku za ispis.

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

3. Sada stvorite još jednog razreda Pas. Ovaj put ćemo ga naslijediti iz osnovne klase koju smo kreirali ranije tj. Životinje. Za nasljeđivanje koristimo simbol ':'.

class Dog: public Animal

4. Ovdje izjavljujemo istu funkciju Message () za različite implementacije i pišemo neku poruku. Provjerite podudaraju li se naziv metode i potpis u izvedenoj klasi s imenom metode i potpisom u osnovnoj klasi.

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

5. Potrebna nam je još jedna klasa da bismo izvršili funkcionalnost za provjeru prevladavanja. Napravite klasu s bilo kojim nazivom. Unutra piše glavna funkcija.

class ExecutionClass
(
int Main( )
(
)
)

6. Napravite objekt roditeljske klase i pokrenite funkciju pomoću objekta klase. Ovo će pozvati metodu poruke prisutnu u klasi Životinje.

Animal animalObject;
animalObject.Message( );

7. Sada stvorite objekt izvedene klase i nazovite metodu Poruke. To će pozvati metodu Poruke klase Dog.

Dog dogObject;
dogObject.Message( );

8. Koji će biti rezultat ovog koda? Možete li pogoditi? Ovo je prikazano u nastavku.

Izlaz:

9. U gornjem primjeru pozivamo funkciju s istim imenom i potpisom, koristeći objekt kreiran za izvedenu i osnovnu klasu odvojeno. U oba će se slučaja za osnovnu i izvedenu klasu pozvati različite verzije funkcije.

Zaključak

U ovom smo članku shvatili metodu nadjačavanja u C ++, potrebu za nadjačavanjem metode, primjere iz stvarnog svijeta načela prevladavanja, način postizanja i primjer preglasavanja pomoću koda. Možemo zaključiti da je prevladavanje jedna od korisnih značajki polimorfizma u C ++ u kojoj možemo promijeniti ponašanje metode osnovne klase u izvedenom razredu.

Preporučeni članci

Ovo je vodič za prevladavanje u C ++. Ovdje ćemo raspraviti kako funkcionira Overriding u C ++, jednostavan primjer s različitim koracima. Možete i proći kroz naše druge povezane članke da biste saznali više -

  1. Nizi u C ++
  2. Uvod u C ++
  3. Naredbe C ++
  4. Kopiraj konstruktor u C ++
  5. Vodič za prevladavanje u OOP-ovima
  6. Prevladavanje u Javi

Kategorija: