Rafi Temat założony przez niniejszego użytkownika |
Pytanie dotyczące dziedziczenia. » 2013-04-03 18:53:53 Witam ! Przerabiając kurs ze strony http://kurs-c-plus-plus.cba.pl zatrzymałem się na lekcji dotyczącej dziedziczenia (ten kurs już przerobiłem, utrwalam wiedzę w innych). Otóż nie do końca kumam dziedziczenie - tj. na chwilę obecną prosiłbym o wytłumaczenie dwóch rzeczy: 1. class figura { protected: double podstawa, wysokosc; public: void przypisz( double a, double h ) { podstawa = a; wysokosc = h; } };
class kwadrat : public figura Dlaczego przy deklaracji klasy "kwadrat" użyto ? Wiem, że to się odnosi do samego dziedziczenia ale po co to public? Skoro przy dziedziczeniu metod zwracających jakąś wartość nie jest napisane ? Przykład(to tylko fragment): class trzecia { public: int metoda3( int a, int b ) { return a / b; } };
class zbiorcza : pierwsza , druga , trzecia { public: void metoda_all() { cout << metoda1( 5, 4 ) << endl; cout << metoda2( 4, 1 ) << endl; cout << metoda3( 15, 3 ) << endl; } }; Kolejne pytanie odnosi się również do powyższego kodu: w jaki sposób wartości zmiennych z klasy przenoszą się do poszczególnych klas? Możliwe że wyszło kapkę chaotycznie, ale może zrozumiecie :) z góry dzięki:) |
|
Monika90 |
» 2013-04-03 19:05:19 W C++ dziedziczenie może być publiczne lub prywatne (lub chronione). Zatem class Derived : public Base { };
znaczy, że Derived dziedziczy publicznie z Base, a: class Derived : private Base { };
znaczy, że Derived dziedziczy prywatnie z Base, a jak nic nie napiszesz: to tak jakbyś napisał private, czyli to też jest dziedziczenie prywatne (w przypadku struktur jest inaczej). Dziedziczenie publiczne służy do tworzenia podtypów, prywatne, na ogół, do współdzielenia implementacji. |
|
pekfos |
» 2013-04-03 19:12:50 To musiał być na prawdę cienki kurs, skoro masz takie wątpliwości ;) Dlaczego przy deklaracji klasy "kwadrat" użyto ? Wiem, że to się odnosi do samego dziedziczenia ale po co to public? Skoro przy dziedziczeniu metod zwracających jakąś wartość nie jest napisane
|
public oznacza dziedziczenie publiczne, a brak oznacza dziedziczenie prywatne. Kolejne pytanie odnosi się również do powyższego kodu: w jaki sposób wartości zmiennych z klasy przenoszą się do poszczególnych klas? |
Jakich zmiennych? Masz na myśli stałe, podane przy wywołaniach metod? Pytanie, co najmniej, bardzo dziwne (chyba, że obchodzi cię budowa wewnętrzna i działanie gotowego programu) |
|
Rafi Temat założony przez niniejszego użytkownika |
» 2013-04-03 19:21:48 OK, rozumiem, chociaż współdzielenia implementacji |
to średnio, ale wierzę że kiedyś będę wiedział o co chodzi :) I (nie chcę tworzyć nowego tematu) czy mogę zadeklarować klasy dziedziczone na początku i użyć ich po funkcji main? @pekfos może nawet nie taki cienki, ale faktycznie - dziedziczenie było marnie rozwinięte. Pro po zmiennych już się domyśliłem :) Ogólnie chyba potrafię użyć dziedziczenia, ale w sposób taki, iż wiem co podstawić i może zadziała. A chcę zrozumieć samo działanie :D |
|
Monika90 |
» 2013-04-03 19:51:38 To musiał być naprawdę cienki kurs, skoro masz takie wątpliwości ;) |
Trzeba przyznać, że ten kurs jest wyjątkowo słabej jakości. |
|
Rafi Temat założony przez niniejszego użytkownika |
» 2013-04-04 15:40:10 Hmm... więc jaki byłby odpowiedni na utrwalenie wiedzy z kursy z tej strony? Może ten http://www.bt4.pl/kursy/cpp/programowanie-cpp/? Od razu mówię - kurs z tej strony jest bardzo fajny, ale lubię uzupełniać wiedzę w innych źródłach :). Może znacie jakieś godne polecenia? |
|
kubek3898 |
» 2013-04-05 19:58:41 Jeśli interesuje Cię pozyskiwanie wiedzy z książek, a nie tylko z kursów to polecam "Symfonia C++ Standard". Tam masz dobrze wytumaczony materiał o klasach włączając dziedziczenie :). |
|
« 1 » |