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 arvekonseptet i C ++ programmering. Vi vil forklare konseptet med vennfunksjonen i C ++ med arbeidseksempler.

Hvorfor arv?

Arv tillater å lage en ny klasse eller avledet klasse fra en annen klasse eller baseklasse. 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 er forskjellige typer arv:

  1. Enkel/enkelt arv
  2. Hierarkisk arv
  3. Arv på flere nivåer
  4. Flere arv

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

Eksempel 1:

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

#inkludere
ved hjelp av navneområdet STD;
Klasse Base_Class

offentlig:
int jeg;
void display ()

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

;
Klasseded_class: public base_class

offentlig:
void show ()

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

;
int main ()

DEDED_CLASS DC;
DC.i = 100;
DC.vise();
DC.forestilling();
retur 0;

Eksempel 2:

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

Som du kan se nedenfor, har vi definert to baseklassekonstruktører og tre avledede klassekonstruktører. Du kan tydelig legge merke til fra utdataene nedenfor at baseklassekonstruktøren kalles først før den avledede klassekonstruktøren kalles.

#inkludere
ved hjelp av navneområdet STD;
Klasse Base_Class

offentlig:
Base_class ()

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

Base_class (int x)

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

;
Klasseded_class: public base_class

offentlig:
DEDED_CLASS ()

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

DEDED_CLASS (int y)

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

DEDED_CLASS (int x, int y): base_class (x)

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

;
int main ()

DEDED_CLASS D (7,19);

Eksempel 3:

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

Som du ser, er det to klasser definert: rectangle_class og cube_class. Rectangle_class er baseklassen som den avledede klassen, jeg.e., Cube_Class er avledet. Derfor arver vi funksjonene fra rectangle_class til cube_class.

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

Vi har erklært et objekt av den avledede klassen, og deretter kaller metodene fra baseklasse, i.e., setLength () og setbreadth ().

#inkludere
ved hjelp av navneområdet STD;
klasse rectangle_class

privat:
int lengde;
int bredde;
offentlig:
Rectangle_class ();
Rectangle_class (int l, int b);
Rectangle_class (rectangle_class & r);
int getLength ()

returlengde;

int getbreadth ()

returner bredde;

void setLength (int l);
void setbreadth (int b);
int område ();
;
Klasse Cube_Class: Public Rectangle_Class

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

høyde = h;

Int Getheight ()

returhøyde;

void setheight (int h)

høyde = h;

int volum ()

return 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;

void rectangle_class :: setLength (int l)

lengde = l;

void rectangle_class :: setbreadth (int b)

bredde = b;

int rectangle_class :: område ()

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., arver funksjoner fra flere baseklasse eller foreldreklasse). For å gjøre det enklere har jeg imidlertid bare vurdert en enkelt arv her. Jeg har vist tre arbeidseksempler for å forklare hvordan vi kan bruke arv i C ++ programmering og bruke koden på nytt. Dessuten er dette et veldig nyttig trekk ved C++.