C ++

C ++ Arv

C ++ Arv
Arv är ett mycket viktigt inslag i objektorienterad programmering. Det låter programmeraren härleda en klass från en befintlig klass. Detta är mycket användbart särskilt i ett stort komplext projekt eftersom det gör det möjligt för programmeraren att återanvända koden.

I den här artikeln ska vi diskutera arvskonceptet i C ++ programmering. Vi kommer att förklara konceptet med vänfunktionen i C ++ med arbetsexempel.

Varför arv?

Med arv kan du skapa en ny klass eller härledd klass från en annan klass eller basklass. Den härledda klassen eller barnklassen kommer att ha alla funktioner i moderklassen eller basklassen. Vi kan återanvända koden med hjälp av arv.

Typ av arv

Det finns olika typer av arv:

  1. Enkel / enkel arv
  2. Hierarkisk arv
  3. Arv på flera nivåer
  4. Flera arv

I den här artikeln ska vi bara överväga enkel / enkel arv.

Exempel 1:

Låt oss nu titta på ett exempelprogram för att förstå begreppet arv i C++. Vi har definierat en basklass och härledt en annan klass från den. Därför kommer den härledda klassen att ha funktionerna (medlemmar och funktioner) från basklassen.

#omfatta
använder namnrymd std;
klass Base_Class

offentlig:
int i;
ogiltig visning ()

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

;
klass Derived_Class: public Base_Class

offentlig:
ogiltig show ()

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

;
int main ()

Derived_Class dc;
likström.i = 100;
likström.visa();
likström.show();
returnera 0;

Exempel 2:

Detta är ett annat exempel på arv i C++. I det här exemplet ska vi se hur konstruktörerna kallas när ett härledt klassobjekt skapas.

Som du kan se nedan har vi definierat två basklasskonstruktörer och tre härledda klasskonstruktörer. Du kan tydligt märka från utdata nedan att basklasskonstruktören anropas först innan den härledda klasskonstruktören anropas.

#omfatta
#omfatta
använder namnrymd std;
klass Base_Class

offentlig:
Base_Class ()

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

Base_Class (int x)

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

;
klass Derived_Class: public 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);

Exempel 3:

I det här exemplet ska vi se hur härledda klassobjekt kan användas.

Som du kan se finns det två klasser definierade: Rectangle_Class och Cube_Class. Rectangle_Class är basklassen från vilken den härledda klassen, i.e., Cube_Class härleds. Därför ärver vi funktionerna från Rectangle_Class till Cube_Class.

Du kan också märka att vi ärver Cube_Class med den offentliga åtkomstkontrollen. Detta innebär att den härledda klassen kan komma åt alla icke-privata medlemmar i basklassen.

Vi har förklarat ett objekt för den härledda klassen och kallar sedan metoderna från basklassen, dvs.e., setLength () och setBreadth ().

#omfatta
använder namnrymd std;
klass Rektangel_Klass

privat:
int längd;
int bredd;
offentlig:
Rektangel_klass ();
Rektangel_klass (int l, int b);
Rectangle_Class (Rectangle_Class & r);
int getLength ()

returlängd;

int getBreadth ()

återvänd bredd;

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

privat:
int höjd;
offentlig:
Cube_Class (int h)

höjd = h;

int getHeight ()

returhöjd;

void setHeight (int h)

höjd = h;

int volym ()

returnera getLength () * getBreadth () * höjd;

;
Rectangle_Class :: Rectangle_Class ()

längd = 1;
bredd = 1;

Rectangle_Class :: Rectangle_Class (int l, int b)

längd = l;
bredd = b;

Rectangle_Class :: Rectangle_Class (Rectangle_Class & r)

längd = r.längd;
bredd = r.bredd;

ogiltig Rectangle_Class :: setLength (int l)

längd = l;

ogiltig Rectangle_Class :: setBreadth (int b)

bredd = b;

int Rectangle_Class :: area ()

returlängd * bredd;

int main ()

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

Slutsats:

I den här artikeln har jag förklarat begreppet arv i C++. C ++ stöder olika typer av arv inklusive "multipel arv" (i.e., ärva funktioner från flera basklasser eller föräldraklasser). Men för att göra det enklare har jag bara övervägt enstaka arv här. Jag har visat tre arbetsexempel för att förklara hur vi kan använda arv i C ++ programmering och återanvända koden. Dessutom är detta en mycket användbar egenskap hos C++.

Användbara verktyg för Linux-spelare
Om du gillar att spela spel på Linux är chansen att du kan ha använt appar och verktyg som Wine, Lutris och OBS Studio för att förbättra spelupplevels...
HD Remastered Games för Linux som aldrig tidigare hade en Linux-version
Många spelutvecklare och utgivare kommer med HD-remaster av gamla spel för att förlänga livstiden för franchisen, snälla fans som begär kompatibilitet...
Hur man använder AutoKey för att automatisera Linux-spel
AutoKey är ett verktyg för desktopautomatisering för Linux och X11, programmerat i Python 3, GTK och Qt. Med hjälp av dess skript och MACRO-funktional...