C++

Dziedziczenie C++

Dziedziczenie C++
Dziedziczenie jest bardzo ważną cechą programowania obiektowego. Pozwala programiście wyprowadzić klasę z istniejącej klasy. Jest to bardzo przydatne zwłaszcza w dużych, złożonych projektach, ponieważ pozwala programiście na ponowne wykorzystanie kodu.

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:

  1. Proste/pojedyncze dziedziczenie
  2. Dziedziczenie hierarchiczne
  3. Dziedziczenie wielopoziomowe
  4. 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++.

Mouse left-click button not working on Windows 10
If you are using a dedicated mouse with your laptop, or desktop computer but the mouse left-click button is not working on Windows 10/8/7 for some rea...
Cursor jumps or moves randomly while typing in Windows 10
If you find that your mouse cursor jumps or moves on its own, automatically, randomly while typing in Windows laptop or computer, then some of these s...
How to reverse Mouse and Touchpads scrolling direction in Windows 10
Mouse and Touchpads not only make computing easy but more efficient and less time-consuming. We cannot imagine a life without these devices, but still...