Johdanto ohittamiseen C ++: ssa

C ++: n ohittaminen on yksi tapa saavuttaa ajoajan polymorfismi, jossa muokkaamme saman menetelmän käyttäytymistä. Yleensä lapsiluokka perii jäsentoiminnot ja datajäsenet perusluokasta. Mutta kun tarpeemme on ohittaa lasten luokan toiminnot, meidän on käytettävä toimintojen ohittamista. Ohittaminen antaa menetelmille etunimen olla sama nimi sekä perusluokassa että siitä johdetussa luokassa. Se antaa meille mahdollisuuden muuttaa perusluokassa esiintyvää toimintakäyttäytymistä johdettuissa luokissa tarpeen mukaan.

Kuinka ohittaminen toimii C ++: ssa?

Ennen kuin ymmärrät ohituksen, ymmärrämme ensin polymorfismi. Polymorfismin kirjaimellisella merkityksellä on monia muotoja, ts. Joilla on useita muotoja yhdestä tietystä asiasta. Olio-ohjelmointikielellä tämä on yksi hyödyllisistä ominaisuuksista. Perinnöissä polymorfismi saavutetaan funktion tai menetelmän avulla, kun sekä perus- että johdettuilla luokilla on sama jäsentoiminnon ilmoitus, mutta niiden määritelmä on erilainen.

Tätä varten meidän on ensin perittävä luokasta johdettu luokka. Sitten meidän olisi tarjottava erilaisia ​​määritelmiä tarpeen mukaan, jokaiselle perusluokan menetelmälle jälleen johdetun luokan sisällä. Vasta sitten kyseisen toiminnon sanotaan olevan ohitettu, ja tätä askel askeleelta -prosessia kutsutaan funktion ohittamiseksi.

Oletetaan, että otamme skenaarion, jossa sovelluksellamme on vaatimus muuttaa perusluokan menetelmän käyttäytymistä johdetussa luokassa, niin meidän pitäisi käyttää ohitusominaisuutta . Jotta johdetun luokan funktio voidaan ohittaa, meillä on oltava sama allekirjoitus lapsiluokassa. Myös funktioiden nimien tulisi olla samat molemmissa emäksissä ja johdettuissa luokissa. Allekirjoitus tarkoittaa tässä saman tietotyypin ja parametrisekvenssin käyttöä, joka toimitetaan toiminnossa. Jos parametreja ei tarvita, emme tarvitse käyttää yhtäkään parametria perustoiminnossa kuin lapsitoiminnossa. Seuraavassa on joitain asioita, jotka meidän on pidettävä mielessä ennen kuin käytämme ohittamista.

  • C ++ -ohjelmoinnissa ohittaminen on esimerkki ajoajan polymorfismista tai dynaamisesta polymorfismista.
  • Ohittaminen on mahdollista vain johdettujen luokkien menetelmissä, koska menetelmä syrjäytetään johdetussa luokassa perusluokasta.
  • Ohittamisen saavuttamiseksi perus- ja johdettuissa luokissa olevilla funktioilla tulisi olla sama nimi, sama paluutapa ja samat parametrit.

Menetelmää, joka ohitetaan ohitusilmoituksella, kutsutaan ohitetuksi perusmenetelmäksi. Perusluokka sisältää tämän menetelmän. Tästä perusluokasta peritään tuore toteutus nimeltään ohitusmenetelmä. Kun luomme johdetun luokan objektin ja kutsumme jäsentoimintoa, joka on olemassa sekä perus- että johdettuissa luokissa, kantaluokan jäsentoiminto jätetään huomioimatta ja johdetun luokan jäsentoiminto käynnistetään.

Alla on menetelmän ohittamista koskevat vaatimukset:

  • Ensimmäinen ja tärkein asia on, että periytymisen tulisi olla siellä pohjasta johdettuun luokkaan, koska funktion ylitystä ei voida suorittaa samassa luokassa. Tämän saavuttamiseksi tarvitaan perusluokka ja johdettu luokka.
  • Uudelleen määritellyllä toiminnolla tulisi olla täsmälleen sama ilmoitus sekä perus- että johdettuissa luokissa. Mitä tuo tarkoittaa? Tämä tarkoittaa, että toiminnoilla tulisi olla sama nimi, sama allekirjoitus ja sama parametriluettelo.

Esimerkki ohittamisesta

Koodi

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

Yllä olevassa esimerkissä funktio Message () ohitetaan johdetussa luokassa.

Esimerkki vaiheilla

1. Katsokaamme esimerkkiä, jossa käytetään main () -toimintoa ymmärtääksesi ymmärryksen paremmin.

2. Luo perusluokka millä tahansa nimellä. Täällä käytän Animalia. Kirjoita menetelmä näytölle tulevan viestin näyttämiseksi. Tämä on ohitettu menetelmä, jota ohitamme perinnöllisessä luokassa. Kirjoita menetelmän sisälle tulostettava viesti.

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

3. Luo nyt vielä yksi luokan koira. Tällä kertaa perimme sen aikaisemmin luomastamme perusluokasta eli Animal. Periäksesi käytämme ':' -symbolia.

class Dog: public Animal

4. Tässä julistamme saman viestin () -toiminnon eri toteutuksille ja kirjoitamme jonkin viestin. Varmista, että johdetun luokan menetelmän nimi ja allekirjoitus vastaavat perusluokan menetelmän nimeä ja allekirjoitusta.

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

5. Tarvitsemme vielä yhden luokan toiminnallisuuden suorittamiseksi ohittamisen tarkistamiseksi. Luo luokka millä tahansa nimellä. Kirjoita sen sisällä päätoiminto.

class ExecutionClass
(
int Main( )
(
)
)

6. Luo pääluokan objekti ja käynnistä toiminto luokan objektilla. Tämä vetoaa eläinluokassa esiintyvään viestimenetelmään.

Animal animalObject;
animalObject.Message( );

7. Luo nyt johdetun luokan objekti ja soita Viestimenetelmä. Tämä kutsuu koiran luokan Viestimenetelmä.

Dog dogObject;
dogObject.Message( );

8. Mikä tämän koodin tulos on? Voitko arvata sen? Tämä on alla olevan kuvan mukainen.

lähtö:

9. Yllä olevassa esimerkissä kutsumme funktiota samalla nimellä ja allekirjoituksella käyttämällä johdettuun ja kantaluokkaan luodtua objektia erikseen. Molemmissa tapauksissa perus- ja johdetulle luokalle kutsutaan funktion erilaisia ​​versioita.

johtopäätös

Tässä artikkelissa ymmärsimme C ++ -menetelmässä ohittavan menetelmän, menetelmän välttämättömyyden, reaalimaailman esimerkkejä tärkeimmästä periaatteesta, tapaa sen saavuttamiseen ja esimerkin koodin ohittamisesta. Voimme päätellä, että ohittaminen on yksi hyödyllisistä piirteistä C ++: n polymorfismissa, jossa voimme muuttaa perusluokan menetelmän käyttäytymistä johdetussa luokassa.

Suositellut artikkelit

Tämä on opas ohittamiseen C ++: ssa. Tässä keskustellaan siitä, kuinka ohittaminen C ++: ssa toimii, yksinkertainen esimerkki eri vaiheilla. Voit myös käydä läpi muiden aiheeseen liittyvien artikkeleidemme saadaksesi lisätietoja-

  1. Ryhmät C ++: ssa
  2. Johdanto C ++: een
  3. C ++ -komennot
  4. Kopioi rakentaja C ++ -sovellukseen
  5. Opas ohittamiseen OOP: issa
  6. Ylivoimainen Java