Dziedziczenie

class KlasaBazowa

{

};

class KlasaPochodna

    : typ_dziedziczenia KlasaBazowa

{

};

Dziedziczenie publiczne public

Dziedziczenie publiczne jest najczęściej stosowane. Składowe publiczne klasy bazowej są odziedziczone jako publiczne, a składowe chronione jako chronione.

Dziedziczenie chronione protected

W dziedziczeniu chronionym składowe publiczne są dziedziczone jako chronione, a składowe chronione jako chronione.

Dziedziczenie prywatne private

Dziedziczenie prywatne (domyślne). Składowe publiczne są dziedziczone jako prywatne, a chronione jako prywatne.

Przykład 1.


#include <iostream>
using namespace std;
class KlasaBazowa {
public:
int x=0;
};
class KlasaPochodna : public KlasaBazowa {

};
int main() {
KlasaPochodna Nazwa;
cout << Nazwa.x;
return 0;
}

Przykład 2.


Dziedziczenie wielokrotne

Klasę pochodną można również zdefiniować z więcej niż jednej klasy bazowej, używając listy klas oddzielonej przecinkami.

Przykład 3. Klasy pochodne na podstawie kilku klas bazowych

#include <iostream>
using namespace std;
class KlasaBazowaA {
 public:
 int x=10;
};
class KlasaBazowaB {
 public:
 int y=1;
};
class KlasaPochodna : public KlasaBazowaA, public KlasaBazowaB {

};
int main() {
KlasaPochodna NazwaObiektu;
 cout << NazwaObiektu.x;
 cout << NazwaObiektu.y;
return 0;
}

Dziedziczenie wielopoziomowe

Klasa może również pochodzić z klasy, która jest już pochodną innej klasy.

Specyfikatory dostępu

Z rozdziału Specyfikatory dostępu dowiedziałeś się , że w C ++ są dostępne trzy specyfikatory. Do tej pory używaliśmy tylko public (elementy klasy są dostępni spoza klasą) i private (dostęp do elementów jest możliwy tylko w obrębie klasy). Trzeci specyfikator protected jest podobny do private, ale można do niego uzyskać dostęp w odziedziczonej klasie.