C ++

C ++ Arv

C ++ Arv
Arv er et veldig viktig trekk ved objektorientert programmering. Det lar programmereren utlede en klasse fra en eksisterende klasse. Dette er veldig nyttig, spesielt i et stort komplekst prosjekt, fordi det lar programmereren bruke koden på nytt.

I denne artikkelen skal vi diskutere arvkonseptet i C ++ programmering. Vi vil forklare konseptet med vennefunksjonen i C ++ med arbeidseksempler.

Hvorfor arv?

Arv tillater å opprette en ny klasse eller avledet klasse fra en annen klasse eller basisklasse. Den avledede klassen eller barneklassen vil ha alle funksjonene i foreldreklassen eller baseklassen. Vi kan bruke koden på nytt ved hjelp av arv.

Type arv

Det finnes forskjellige typer arv:

  1. Enkel / enkelt arv
  2. Hierarkisk arv
  3. Multilevel Arv
  4. Flere arv

I denne artikkelen skal vi bare vurdere enkel / enkelt arv.

Eksempel 1:

La oss nå se på et eksempelprogram for å forstå begrepet arv i C++. Vi har definert en basisklasse og deretter avledet en annen klasse fra den. Derfor vil den avledede klassen ha funksjonene (medlemmer og funksjoner) fra basisklassen.

#inkludere
bruker navneområde std;
klasse Base_Class

offentlig:
int i;
ugyldig visning ()

cout << "Display of Base Class " << i << endl;

;
klasse Derived_Class: offentlig Base_Class

offentlig:
ugyldig show ()

cout << "Show of Derived Class" << endl;

;
int main ()

Derived_Class dc;
likestrøm.i = 100;
likestrøm.vise();
likestrøm.vise fram();
retur 0;

Eksempel 2:

Dette er et annet eksempel på arv i C++. I dette eksemplet skal vi se hvordan konstruktørene kalles når et avledet klasseobjekt opprettes.

Som du kan se nedenfor, har vi definert to basisklassekonstruktører og tre avledede klassekonstruktører. Du kan tydelig merke fra nedenstående utdata at basisklassekonstruktøren kalles først før den avledede klassekonstruktøren kalles.

#inkludere
#inkludere
bruker navneområde std;
klasse Base_Class

offentlig:
Base_Class ()

cout << "Base_Class - No Parameters" << endl;

Base_Class (int x)

cout << "Base_Class - Parameters : " << x << endl;

;
klasse Derived_Class: offentlig Base_Class

offentlig:
Derived_Class ()

cout << "Derived_Class - No Parameters" << endl;

Derived_Class (int y)

cout << "Derived_Class - Parameters : " << y << endl;

Derived_Class (int x, int y): Base_Class (x)

cout << "Param of Derived_Class : " << y << endl;

;
int main ()

Derived_Class d (7,19);

Eksempel 3:

I dette eksemplet skal vi se hvordan avledede klasseobjekter kan brukes.

Som du kan se, er det to klasser definert: Rectangle_Class og Cube_Class. Rectangle_Class er basisklassen som den avledede klassen, i.e., Cube_Class er avledet. Derfor arver vi funksjonene fra Rectangle_Class til Cube_Class.

Du kan også legge merke til at vi arver Cube_Class med den offentlige tilgangskontrollen. Dette betyr at den avledede klassen kan få tilgang til alle ikke-private medlemmer av basisklassen.

Vi har erklært et objekt for den avledede klassen, og kaller deretter metodene fra basisklassen, i.e., setLength () og setBreadth ().

#inkludere
bruker navneområde std;
klasse Rektangel_Klasse

privat:
int lengde;
int bredde;
offentlig:
Rectangle_Class ();
Rektangel_klasse (int l, int b);
Rectangle_Class (Rectangle_Class & r);
int getLength ()

returlengde;

int getBreadth ()

retur bredde;

void setLength (int l);
ugyldig setBreadth (int b);
int område ();
;
klasse Cube_Class: offentlig Rectangle_Class

privat:
int høyde;
offentlig:
Cube_Class (int h)

høyde = h;

int getHeight ()

retur høyde;

void setHeight (int h)

høyde = h;

int volum ()

returner getLength () * getBreadth () * høyde;

;
Rectangle_Class :: Rectangle_Class ()

lengde = 1;
bredde = 1;

Rectangle_Class :: Rectangle_Class (int l, int b)

lengde = l;
bredde = b;

Rectangle_Class :: Rectangle_Class (Rectangle_Class & r)

lengde = r.lengde;
bredde = r.bredde;

ugyldig Rectangle_Class :: setLength (int l)

lengde = l;

ugyldig Rectangle_Class :: setBreadth (int b)

bredde = b;

int Rectangle_Class :: area ()

returlengde * bredde;

int main ()

Cube_Class c (8);
c.setLength (12);
c.setBreadth (9);
cout<<"Volume is "<

Konklusjon:

I denne artikkelen har jeg forklart begrepet Arv i C++. C ++ støtter forskjellige typer arv, inkludert "flere arv" (i.e., arve funksjoner fra flere baseklasser eller foreldreklasser). For å gjøre det enklere har jeg imidlertid bare vurdert enkeltarv her. Jeg har vist tre arbeidseksempler for å forklare hvordan vi kan bruke arv i C ++ programmering og bruke koden på nytt. Videre er dette en veldig nyttig funksjon av C++.

Hvordan installere og spille Doom på Linux
Introduksjon til Doom Doom-serien stammer fra 90-tallet etter utgivelsen av den originale Doom. Det ble en øyeblikkelig suksess, og fra den tiden og u...
Vulkan for Linux-brukere
Med hver nye generasjon grafikkort ser vi spillutviklere skyve grensene for grafisk troskap og komme et skritt nærmere fotorealisme. Men til tross for...
OpenTTD vs Simutrans
Å lage din egen transportsimulering kan være morsom, avslappende og ekstremt fristende. Derfor må du sørge for at du prøver så mange spill som mulig f...