Skocz do zawartości
tytek

Dziedziczenie A Hierarchizacja

Rekomendowane odpowiedzi

Witam!!!

 

Dziedziczenie umożliwia wieloraką klasyfikację obiektów. Jeden z najczęściej podawanych ideologicznych przykładów:

 

 

/ Osobowy

/ Samochód -<

Ruchome -< \ Ciężarowy

\ Pociąg

 

Jak widać z tego schematu, obiekt klasy Samochód jest również klasy Ruchome, i takoż obiekt klasy Pociąg, a obiekty klas odpowiednio Osobowy i Ciężarowy są obiektami klasy Samochód jak również klasy Ruchome. Ale również należy pamiętać, że klasa Samochód jest POCHODNĄ (ang. derivative) Ruchome, przez co Ruchome jest klasą PODSTAWOWĄ (ang. base) klasy Samochód. Jest też oczywiście klasą podstawową klasy Pociąg.

 

Jak wygladałoby to w C++ ???

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Narysowałbyś jakos lepiej ten schemat???

Ruchome						  /\   						/	\					  /\	  /\					/			 \			 Samochod	   Pociag				 /\			   /	\			 /\	 /\ 		   /			\	 Osobowy	 Ciezarowy

W skrócie można powiedzieć że wszyskto tu jest ruchome. A reszta to już podstawa obiektowości. Czyli jeśli najwyżej w hierarchi jest klasa Ruchome to ( pisze na pałe!!!!!!!!!! :P )

 

#include <iostream>using namespace std;class Ruchome{public:		Ruchome(int i)		{			  cout << "wszytko tu jest ruchome a on jest: ";		 }};class Samochod : public Ruchome{public:		Samochod(int j) : Ruchome(j)[code]		{			 cout << "jest samochodem ";		}};class Pociag : public Ruchome{ public:		 Pociag(int j2) : Ruchome(j2)		{			cout << "jest pociagiem ";		}};class Osobowy : public Samochod{public:		 Osobowy(int k) : Samochod(k)		 {			  cout << "osobowym ";		 }};class Ciezarowy : public Samochod{public:		 Ciezarowy(int l) : Samochod(l)		 {				cout << "ciezarowym ";		 }};int main(){	Ciezarowy * star = new Ciezarowy(10); 	cout << endl << endl;	Pociag * line = new Pociag(100);	 	cin.get();	return 0;}

Dzięki temu naiwnemu opisywaniu pracy konstrutkorów widać jak działaja konstruktory tzn że najpierw

- wszytko jest ruchome

- coś jest albo samochodem albo pociągiem

- samochod jest albo osobowy albo cieżarowy

Najpierw rusza do pracy konstruktor klasy bazowej czyli wtym wypadku jako 1 ruszy konstruktor klasy Ruchome bo jest ona najwyżej w hierarchii w stosunku do wszytkich a potem ruszą konstruktory zgodnie z hierarchia w jakiej sa ustawione.

Oczywiście to jest TYLKO!!!! taki przykład ale dobrze oddaje sytuacje.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...