Call Base -klassefunksjon i C ++

Call Base -klassefunksjon i C ++
Det er et arvsbegrep i mange programmeringsspråk som C++. Det vil gi deg muligheten til å bruke barneklassene i programmet ditt som blir avledet fra deres respektive baseklasser. En barneklasse kan få tilgang til datamedlemmene i sin spesifikke baseklasse, i.e., variabler og metoder. Innenfor denne guiden vil vi diskutere forskjellige måter å utføre eller ringe basisanropsfunksjonen i C++. Så la oss komme i gang med lanseringen av terminalkonsollen til Ubuntu 20.04 Linux -operativsystem ved hjelp av hurtigtasten “Ctrl+Alt+T” på skrivebordet. La oss se på noen av de enkle eksemplene for å kalle en base -metode i C ++ nå.

Eksempel 01:

Det første eksemplet startet med generasjonen av en ny ny fil som skal brukes til å lage en kode. Den mest kjente "berørings" -instruksjonen brukes her for å lage “basen.CC ”-fil. Denne filen må åpnes i noen redaktører som allerede er innebygd i Ubuntu 20.04 System, i.e., vim, nano eller tekstredigerer. Vi har valgt “Nano” -redaktøren for å åpne den.

Koden er startet fra inkludering av noen nødvendige overskriftsfiler av C ++ som "Iostream" og "Bits/STDC++.h ”. Filen åpnes i den tomme GNU Nano -redaktøren av Ubuntu 20.04 System. C ++ -språket bruker "STD" -navnet for å bruke "cout" og "cin" -klausuler for å vise og få innspill. Vi har startet en ny klasse, “A” med et offentlig metodeshow (). Denne funksjonen inneholder en enkelt cout -uttalelse for å vise at dette er en foreldreklassefunksjon som utfører akkurat nå. Etter denne klassen har vi laget en ny klasse, “B” arvet fra klassen “A”. Dette betyr at klasse B er en barneklasse av klasse A og kan arve dens egenskaper. Klasse “B” inneholder også en offentlig type funksjon som heter “Display ()”. Denne funksjonen bruker en enkelt “cout” -uttalelse her for å vise at denne funksjonen er utført i barneklassen til dette programmet. Nå er barneklassen avsluttet her. Vi har startet Main () -metoden her for å utføre klassene.

Nå vil vi prøve å kalle funksjonen "show" i foreldreklasse A uten å lage objektet. Vi vil bruke gjenstanden for barneklasse B for det formålet. Så innen hoved () -funksjonen har vi laget et objekt “OBJ” av barneklasse B ved å bruke “Dot” mellom klassenavnet og objektnavnet. Dette objektet “OBJ” er blitt brukt her med “Dot” -tegnet for å kalle funksjonen “Show ()” til foreldreklassen som heter “A”. Vi bruker ikke dette objektet for å kalle funksjonen til en barneklasse B. Hvis barneklasse B har inneholdt en konstruktørfunksjon, vil konstruktørfunksjonen bli utført rett etter å ha opprettet et objekt. Dette er arvebegrepet ved hjelp av et objekt av barneklasse for å kalle funksjonen til den respektive foreldreklassen. Dette er hvordan vi gjør det. La oss lagre og avslutte koden med Ctrl+S og Ctrl+X snarveier fortløpende.

Etter å ha lagret koden, er vi tilbake i terminalskallet. Før utførelsen må koden settes sammen på skallet med noen C ++ -kompilator. Ubuntu 20.04 kommer med en "G ++" -kompilator som kan installeres med "APT" -pakken. Så vi har brukt denne "G ++" -kompilatoren for å kompilere den nyopplagte filen og deretter utført den med en "./en.ut ”Ubuntu 20.04 Instruksjon. Til gjengjeld er foreldreklassefunksjonen “Show ()” blitt utført, og vi fikk visningsmeldingen.

Eksempel 02:

Vårt første eksempel var å ringe en funksjon fra en baseklasse som inneholder et unikt navn generelt koden. Men hva vil du gjøre når både foreldre- og barneklasser inneholder samme navnfunksjon med samme parametere og returtyper? La oss se på denne metoden for å kalle en baseklassefunksjon. Etter overskriftsfilene og navneområdet har vi erklært to klasser, A og B. A er overordnet klasse B, og klasse B henter egenskapene til foreldreklasse A. Begge klasser A og B inneholder en funksjon “samme ()” med samme navn og samme implementering separat. Implementering av begge funksjonene inneholder cout -setningen som viser om foreldreklassemetoden eller barneklassemetoden er utført.

Vi har brukt funksjonsanropet for overordnet klasse A -metode “samme ()” i barneklasse B ved å bruke “::” -tegnet på siste linje. Dette for å unngå ulempen som kan være forårsaket når et objekt vil kalle samme navnfunksjon. Så innen hovedfunksjonen () har vi laget et objekt “B” av barneklasse “B”. Dette objektet “B” brukes til å kalle funksjonen “samme” for barneklasse B. Når en bruker prøver å kalle samme navnfunksjon til foreldreklassen med samme objekt, vil den kaste et unntak. På grunn av bruken av "A :: samme" -funksjonsanrop i barneklassefunksjonen, vil den unngå unntaket og ikke behov for å lage et nytt objekt. Lagre koden din og avslutt redaktøren.

Samlingen og kjøringen av oppdatert kode fører oss til utdataene nedenfor. Du kan se at begge samme navnfunksjonene til barnet og foreldreklassen utføres med et enkelt objekt.

Eksempel 03:

La oss se en annen metode for å kalle basisamtalen samme navnfunksjon i C++. Så vi har oppdatert den samme koden. Overskriftsfilene, navnefeltet, foreldrene og barneklassene er uendret, i.e., ikke oppdatert. Den eneste oppdateringen er gjort innenfor "main ()" -metoden i denne koden. Vi har laget to objekter, B1 og B2, av barneklasse “B”. Objektet B1 kaller funksjonen “show ()” av barneklasse direkte. Mens objektet B2 kaller foreldreklasseshow () -funksjonen ved å bruke “::” -tegnet mellom klassenavnet og funksjonsnavnet. La oss bare kjøre denne koden etter å ha lagret den.

Resultatet av denne kodeutførelsen fungerte vellykket, og vi kan se at baseklassefunksjonen også kalles ved hjelp av Child Class -objektet "B2".

Eksempel 04:

Det siste eksemplet er ganske forskjellig fra alle eksemplene ovenfor. Generell kode er uendret mens Main () -funksjonen er oppdatert lite. Vi har laget et objekt “B” i barneklasse B. Dette objektet “B” kaller barneklassefunksjonen “samme”. Deretter opprettet en peker “P” av baseklasse “A” -type som har pekt mot objektet “B” i barneklasse B. Denne pekeren brukes deretter til å kalle den samme () funksjonen til baseklasse A. La oss kjøre denne koden og se resultatene.

Etter å ha kjørt denne oppdaterte pekerkoden, har vi sett at baseklassefunksjonen ble utført ved hjelp av pekeren etter å ha utført barneklassemetoden. Dette er hvordan vi gjør det.

Konklusjon:

Denne artikkelen er en superbonus for brukere som leter etter arvekonsepter. Det demonstrerte en anropsbase -funksjon ved hjelp av barneklasseobjektet eller foreldreklasseobjektet. På den annen side har vi også brukt begrepet pekere for å kalle baseklassefunksjonen fra hovedfunksjonen til et program.