W tym artykule omówimy koncepcję dziedziczenia w programowaniu w C++. Wyjaśnimy pojęcie funkcji friend w C++ na przykładach roboczych working.
Dlaczego dziedziczenie?
Dziedziczenie umożliwia tworzenie nowej klasy lub klasy pochodnej z innej klasy lub klasy bazowej. Klasa pochodna lub klasa potomna będzie miała wszystkie cechy klasy nadrzędnej lub klasy bazowej. Możemy ponownie wykorzystać kod za pomocą dziedziczenia.
Rodzaj dziedziczenia
Istnieją różne rodzaje dziedziczenia:
- Proste/pojedyncze dziedziczenie
- Dziedziczenie hierarchiczne
- Dziedziczenie wielopoziomowe
- Dziedziczenie wielokrotne
W tym artykule rozważymy tylko proste/pojedyncze dziedziczenie.
Przykład 1:
Przyjrzyjmy się teraz przykładowemu programowi, aby zrozumieć pojęcie dziedziczenia w C++. Zdefiniowaliśmy klasę bazową, a następnie wyprowadziliśmy z niej inną klasę. Dlatego klasa pochodna będzie miała cechy (członków i funkcje) z klasy bazowej.
#zawieraćprzy użyciu standardowej przestrzeni nazw;
class Base_Class
publiczny:
wew;
nieważne wyświetlanie()
Cout << "Display of Base Class " << i << endl;
;
class Derived_Class: public Base_Class
publiczny:
nieważne pokaż ()
Cout << "Show of Derived Class" << endl;
;
int main()
Pochodna_Klasa DC;
dc.i = 100;
dc.pokaz();
dc.pokazać();
zwróć 0;
Przykład 2:
To kolejny przykład dziedziczenia w C++. W tym przykładzie zobaczymy, jak konstruktory są wywoływane podczas tworzenia obiektu klasy pochodnej.
Jak widać poniżej, zdefiniowaliśmy dwa konstruktory klas bazowych i trzy konstruktory klas pochodnych. Możesz wyraźnie zauważyć z poniższych danych wyjściowych, że konstruktor klasy bazowej jest wywoływany jako pierwszy przed wywołaniem konstruktora klasy pochodnej.
#zawierać#zawierać
przy użyciu standardowej przestrzeni nazw;
class Base_Class
publiczny:
Base_Class()
Cout << "Base_Class - No Parameters" << endl;
Base_Class(int x)
Cout << "Base_Class - Parameters : " << x << endl;
;
class Derived_Class: public Base_Class
publiczny:
Klasy pochodnej()
Cout << "Derived_Class - No Parameters" << endl;
Pochodna_Klasa (int y)
Cout << "Derived_Class - Parameters : " << y << endl;
Klasa_pochodna(int x,int y):Base_Class(x)
Cout << "Param of Derived_Class : " << y << endl;
;
int main()
Klasa_pochodna d(7,19);
Przykład 3:
W tym przykładzie zobaczymy, jak można wykorzystać obiekty klasy pochodnej.
Jak widać, zdefiniowane są dwie klasy: Rectangle_Class i Cube_Class. Rectangle_Class jest klasą bazową, z której pochodzi klasa pochodna, i.mi., Cube_Class jest pochodną. Dlatego dziedziczymy cechy z Rectangle_Class do Cube_Class.
Możesz również zauważyć, że dziedziczymy Cube_Class z publiczną kontrolą dostępu. Oznacza to, że klasa pochodna może uzyskać dostęp do wszystkich nieprywatnych członków klasy bazowej.
Zadeklarowaliśmy obiekt klasy pochodnej, a następnie wywołujemy metody z klasy bazowej, i.mi., setLength() i setBreadth().
#zawieraćprzy użyciu standardowej przestrzeni nazw;
class Prostokąt_Klasa
prywatny:
długość wewnętrzna;
szerokość wewnętrzna;
publiczny:
Klasa_prostokąta();
Rectangle_Class(int l,int b);
Klasa_prostokąta(Klasa_prostokąta &r);
int pobierzDługość()
długość powrotu;
int pobierzBreadth()
szerokość powrotu;
void setLength(int l);
void setBreadth(int b);
obszar wewnętrzny();
;
class Cube_Class: public Rectangle_Class
prywatny:
int wysokość;
publiczny:
Klasa_sześcianu(int h)
wysokość=h;
int pobierzWysokość()
wysokość powrotu;
void setHeight(int h)
wysokość=h;
objętość wewnętrzna()
return pobierzDługość()*PobierzBreadth()*Wysokość;
;
Klasa_prostokąta::Klasa_prostokąta()
długość=1;
szerokość=1;
Rectangle_Class::Rectangle_Class(int l,int b)
długość=l;
szerokość=b;
Rectangle_Class::Rectangle_Class(Rectangle_Class &r)
długość=r.długość;
szerokość=r.szerokość;
void Rectangle_Class::setLength(int l)
długość=l;
void Rectangle_Class::setBreadth(int b)
szerokość=b;
int Rectangle_Class::area()
powrót długość*szerokość;
int main()
Klasa_sześcianu c(8);
do.ustawDługość(12);
do.ustaw szerokość(9);
Cout<<"Volume is "<
Wniosek:
W tym artykule wyjaśniłem pojęcie dziedziczenia w C++. C++ obsługuje różne typy dziedziczenia, w tym „wielokrotne dziedziczenie” (i.mi., dziedziczenie cech z wielu klas bazowych lub klasy nadrzędnej). Jednak, żeby to uprościć, rozważyłem tutaj tylko pojedyncze dziedziczenie. Pokazałem trzy działające przykłady, aby wyjaśnić, w jaki sposób możemy użyć dziedziczenia w programowaniu C++ i ponownie użyć kodu. Co więcej, jest to bardzo przydatna funkcja C++.