tytek Opublikowano 23 Stycznia 2006 Zgłoś Opublikowano 23 Stycznia 2006 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++ ??? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Polar Opublikowano 23 Stycznia 2006 Zgłoś Opublikowano 23 Stycznia 2006 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. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...