C ++

C ++ Öröklés

C ++ Öröklés
Az öröklés az objektum-orientált programozás nagyon fontos jellemzője. Ez lehetővé teszi a programozó számára, hogy egy meglévő osztályból származtasson egy osztályt. Ez különösen hasznos egy nagy komplex projektben, mert lehetővé teszi a programozó számára a kód újrafelhasználását.

Ebben a cikkben az öröklési koncepciót fogjuk megvitatni a C ++ programozásban. Működő példákkal elmagyarázzuk a barátfüggvény fogalmát a C ++ - ban.

Miért öröklés?

Az öröklés lehetővé teszi új osztály vagy egy másik osztályból vagy alaposztályból származó osztály létrehozását. A származtatott osztálynak vagy a gyermekosztálynak meg lesz a szülőosztály vagy az alaposztály összes jellemzője. Az öröklés segítségével újra felhasználhatjuk a kódot.

Az öröklés típusa

Különböző típusú öröklés létezik:

  1. Egyszerű / egyszeri öröklés
  2. Hierarchikus öröklés
  3. Többszintű öröklés
  4. Többszörös öröklés

Ebben a cikkben csak az egyszerű / egyszeri öröklést vesszük figyelembe.

1. példa:

Nézzünk meg egy példaprogramot, hogy megértsük az öröklődés fogalmát a C-ben++. Meghatároztunk egy alaposztályt, majd származtunk belőle egy másik osztályt. Ezért a származtatott osztálynak meg lesznek az alaposztályának tulajdonságai (tagjai és függvényei).

#include
névtér használata std;
osztály Base_Class

nyilvános:
int i;
érvénytelen kijelző ()

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

;
osztály Derived_Class: nyilvános Base_Class

nyilvános:
void show ()

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

;
int main ()

Derived_Class dc;
egyenáram.i = 100;
egyenáram.kijelző();
egyenáram.előadás();
visszatér 0;

2. példa:

Ez egy másik példa az öröklődésre a C-ben++. Ebben a példában megnézzük, hogy hívják a konstruktorokat, amikor egy származtatott osztályobjektumot hoznak létre.

Amint az alább látható, két alaposztályú konstruktort és három származtatott osztálykonstruktort definiáltunk. Az alábbi kimenetből egyértelműen észreveheti, hogy az alaposztály konstruktort hívják meg először, mielőtt a származtatott osztály konstruktort meghívnák.

#include
#include
névtér használata std;
osztály Base_Class

nyilvános:
Base_Class ()

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

Base_Class (int x)

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

;
osztály Derived_Class: nyilvános Base_Class

nyilvános:
Derived_Class ()

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

Derived_Class (int y)

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

Derivált_osztály (int x, int y): Alap_osztály (x)

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

;
int main ()

Származtatott d osztály (7,19);

3. példa:

Ebben a példában azt fogjuk látni, hogy a származtatott osztályobjektumok hogyan használhatók.

Amint láthatja, két osztály van meghatározva: Rectangle_Class és Cube_Class. A Rectangle_Class az az alaposztály, amelyből a származtatott osztály, azaz.e., A Cube_Class származik. Ezért a Rectangle_Class-tól a Cube_Class-ig örököljük a funkciókat.

Azt is észreveheti, hogy a Cube_Class-ot a nyilvános hozzáférés-vezérléssel örököljük. Ez azt jelenti, hogy a származtatott osztály hozzáférhet az alaposztály összes nem magán tagjához.

Deklaráltuk a származtatott osztály objektumát, majd meghívjuk a metódusokat az alaposztályból, azaz.e., setLength () és setBreadth ().

#include
névtér használata std;
osztály Téglalap_osztály

magán:
int hossza;
int szélesség;
nyilvános:
Téglalap_osztály ();
Téglalap_osztály (int l, int b);
Téglalap_osztály (téglalap_osztály);
int getLength ()

visszatérési hossz;

int getBreadth ()

visszatérési szélesség;

void setLength (int l);
void setBreadth (int b);
int terület ();
;
osztály Cube_Class: nyilvános Rectangle_Class

magán:
int magasság;
nyilvános:
Cube_Class (int h)

magasság = h;

int getHeight ()

visszatérési magasság;

void setHeight (int h)

magasság = h;

int térfogat ()

return getLength () * getBreadth () * magasság;

;
Téglalap_osztály :: Téglalap_osztály ()

hossz = 1;
szélesség = 1;

Téglalap_osztály :: Téglalap_osztály (int l, int b)

hossz = l;
szélesség = b;

Téglalap_osztály :: Téglalap_osztály (Téglalap_osztály és r)

hossz = r.hossz;
szélesség = r.szélesség;

void Rectangle_Class :: setLength (int l)

hossz = l;

void Rectangle_Class :: setBreadth (int b)

szélesség = b;

int Rectangle_Class :: terület ()

visszatérési hossz * szélesség;

int main ()

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

Következtetés:

Ebben a cikkben kifejtettem az öröklés fogalmát a C-ben++. A C ++ különböző típusú öröklődéseket támogat, ideértve a „többszörös öröklést” is (i.e., tulajdonságok örökölése több alaposztálytól vagy szülő osztálytól). Az egyszerűség kedvéért azonban itt csak az egyszeri öröklést vettem figyelembe. Három működő példát mutattam be, amelyek elmagyarázzák, hogyan használhatjuk az öröklődést a C ++ programozásban, és hogyan használhatjuk fel újra a kódot. Sőt, ez a C nagyon hasznos tulajdonsága++.

Hasznos eszközök Linux játékosok számára
Ha szeretsz Linuxon játszani, akkor valószínű, hogy olyan alkalmazásokat és segédprogramokat használtál, mint a Wine, a Lutris és az OBS Studio a játé...
HD Remastered Games for Linux, amelyeknek soha nem volt korábban Linux kiadásuk
Számos játékfejlesztő és kiadó a régi játékok HD remasterjével áll elő a franchise élettartamának meghosszabbítása érdekében. Kérjük, hogy a rajongók ...
Az AutoKey használata a Linux játékok automatizálásához
Az AutoKey egy asztali automatizáló segédprogram Linux és X11 rendszerekhez, Python 3, GTK és Qt programozással. A parancsfájlok és a MACRO funkcióina...