C ++

C ++ arv

C ++ arv
Arv er et meget vigtigt træk ved objektorienteret programmering. Det giver programmøren mulighed for at udlede en klasse fra en eksisterende klasse. Dette er meget nyttigt, især i et stort komplekst projekt, fordi det giver programmøren mulighed for at genbruge koden.

I denne artikel skal vi diskutere arvekonceptet i C ++ programmering. Vi forklarer konceptet med venfunktionen i C ++ med arbejdseksempler.

Hvorfor arv?

Arv tillader oprettelse af en ny klasse eller afledt klasse fra en anden klasse eller basisklasse. Den afledte klasse eller underordnede klasse vil have alle funktionerne i forældreklassen eller baseklassen. Vi kan genbruge koden ved hjælp af arv.

Type arv

Der er forskellige typer arv:

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

I denne artikel vil vi kun overveje enkel / enkelt arv.

Eksempel 1:

Lad os nu se på et eksempelprogram for at forstå begrebet arv i C++. Vi har defineret en basisklasse og derefter afledt en anden klasse fra den. Derfor vil den afledte klasse have funktionerne (medlemmer og funktioner) fra basisklassen.

#omfatte
ved hjælp af namespace std;
klasse Base_Class

offentlig:
int i;
ugyldig visning ()

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

;
klasse Derived_Class: offentlig Base_Class

offentlig:
ugyldigt show ()

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

;
int main ()

Derived_Class dc;
dc.i = 100;
dc.Skærm();
dc.at vise();
returnere 0;

Eksempel 2:

Dette er et andet eksempel på arv i C++. I dette eksempel skal vi se, hvordan konstruktørerne kaldes, når der oprettes et afledt klasseobjekt.

Som du kan se nedenfor, har vi defineret to basisklassekonstruktører og tre afledte klassekonstruktører. Du kan tydeligt bemærke fra nedenstående output, at baseklassekonstruktøren kaldes først, før den afledte klassekonstruktør kaldes.

#omfatte
#omfatte
ved hjælp af namespace 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 ()

Afledt_Klasse d (7,19);

Eksempel 3:

I dette eksempel skal vi se, hvordan afledte klasseobjekter kan bruges.

Som du kan se, er der to klasser defineret: Rectangle_Class og Cube_Class. Rectangle_Class er basisklassen, hvorfra den afledte klasse, i.e., Cube_Class er afledt. Derfor arver vi funktionerne fra Rectangle_Class til Cube_Class.

Du kan også bemærke, at vi arver Cube_Class med den offentlige adgangskontrol. Dette betyder, at den afledte klasse kan få adgang til alle ikke-private medlemmer af basisklassen.

Vi har erklæret et objekt for den afledte klasse og kalder derefter metoderne fra basisklassen, i.e., setLength () og setBreadth ().

#omfatte
ved hjælp af namespace std;
klasse Rektangel_Klasse

privat:
int længde;
int bredde;
offentlig:
Rektangel_Klasse ();
Rektangel_Klasse (int l, int b);
Rectangle_Class (Rectangle_Class & r);
int getLength ()

returlængde

int getBreadth ()

vende tilbage bredde;

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

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

højde = h;

int getHeight ()

returhøjde

ugyldigt sætHøjde (int h)

højde = h;

int volumen ()

returnere getLength () * getBreadth () * højde;

;
Rectangle_Class :: Rectangle_Class ()

længde = 1;
bredde = 1;

Rectangle_Class :: Rectangle_Class (int l, int b)

længde = l;
bredde = b;

Rectangle_Class :: Rectangle_Class (Rectangle_Class & r)

længde = r.længde;
bredde = r.bredde;

ugyldig Rectangle_Class :: setLength (int l)

længde = l;

ugyldig Rectangle_Class :: setBreadth (int b)

bredde = b;

int Rektangel_Klasse :: område ()

returlængde * bredde;

int main ()

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

Konklusion:

I denne artikel har jeg forklaret begrebet arv i C++. C ++ understøtter forskellige typer arv, herunder “multipel arv” (i.e., arver funktioner fra flere baseklasser eller overordnede klasser). For at gøre det enklere har jeg dog kun overvejet en enkelt arv her. Jeg har vist tre arbejdseksempler for at forklare, hvordan vi kan bruge arv i C ++ programmering og genbruge koden. Desuden er dette et meget nyttigt træk ved C++.

Bedste Linux Distros til spil i 2021
Linux-operativsystemet er kommet langt fra dets originale, enkle, serverbaserede udseende. Dette operativsystem er forbedret enormt i de senere år og ...
Sådan registreres og streames din gaming-session på Linux
Tidligere blev spil kun betragtet som en hobby, men med tiden oplevede spilindustrien en enorm vækst med hensyn til teknologi og antallet af spillere....
Bedste spil at spille med håndsporing
Oculus Quest introducerede for nylig den gode idé om håndsporing uden controllere. Med et stadigt stigende antal spil og aktiviteter, der udfører supp...