MeehoweCK Temat założony przez niniejszego użytkownika |
Programowanie obiektowe » 2013-04-09 15:57:17 Czy ktoś może mi wytłumaczyć jakie jest zastosowanie klas, metod, obiektów statycznych i wszystkiego co jest omówione w poziomie piątym? Bo z jednej strony wszystko to się wydaje dość proste, ale tak naprawdę (może przez brak "prac domowych" w tych lekcjach) nie widzę ich zastosowania. Czym się na przykład różni stworzenie metody w klasie od stworzenia zwykłej funkcji? Będę zobowiązany jeśli ktoś mi to wytłumaczy na jakimś przykładzie. |
|
DejaVu |
» 2013-04-09 17:48:21 Wyobraź sobie, że chcesz zbudować pilot do TV. Wiesz, że tego pilota będą używali użytkownicy. Użytkownik nie chce wiedzieć jak jest on w środku zbudowany - jedyne co chce wiedzieć to jak go obsługiwać. Klasa służy właśnie do tego, aby opisać 'pilot', dać użytkownikowi (czyli programiście) narzędzie do jego obsługi, ale ukryć przed nim szczegóły implementacyjne tj. np. fakt, że musi się jakoś komunikować z telewizorem. Tym samym:
class CPilot { public: CPilot(); void przypiszPilotDoTelewizora( CTelewizor * nowyTV ); void zmienKanal( int numer ); void wlaczWylacz(); private: CTelewizor * m_pTV; };
Nie interesuje Ciebie później w jaki sposób działa pilot - interesuje Ciebie aby pilot wykonał określone zadanie - np. zmienił kanał jeżeli TV jest do niego przypisany. |
|
pekfos |
» 2013-04-09 18:00:10 Poziom 5 nie jest jeszcze skończony. To co w nim aktualnie jest, to tylko podstawy. nie widzę ich zastosowania. |
Na pewno używałeś std::string. Przechowuje tekst i ma metody do operowania na nim (wstawianie, usuwanie, wyszukiwanie, itp). Z użyciem zwykłych funkcji, nie byłby tak wygodny. |
|
usmiech |
» 2013-04-09 23:53:24 Stworzenie klas wymusila komercja.. Dzieki nim mozliwa jest praca nad kazdym projektem w zespolach ludzi. Kazdy ma swoja 'dzialke' i nie zakloca pracy innych czlonkow zespolu. Nie moze tez zaszkodzic calemu projektowi. W pewnym sensie dlatego pojawily sie public, private i protected.. Ktos moze powiedziec, ze to duze uproszczenie problemu, ale w ten wlasnie sposob umozliwiona zostala praca zespolowa nad duzymi projektami. |
|
pekfos |
» 2013-04-10 15:07:02 Stworzenie klas wymusila komercja.. Dzieki nim mozliwa jest praca nad kazdym projektem w zespolach ludzi. Kazdy ma swoja 'dzialke' i nie zakloca pracy innych czlonkow zespolu. Nie moze tez zaszkodzic calemu projektowi. W pewnym sensie dlatego pojawily sie public, private i protected.. Ktos moze powiedziec, ze to duze uproszczenie problemu, ale w ten wlasnie sposob umozliwiona zostala praca zespolowa nad duzymi projektami. |
Uzasadnij? Równie dobrze można by używać oddzielnych jednostek translacji i zwykłych funkcji. Myślisz, że za czasów C nie było dużych projektów pisanych przez wiele osób? |
|
DejaVu |
» 2013-04-10 15:16:05 Na pewno używałeś std::string. Przechowuje tekst i ma metody do operowania na nim (wstawianie, usuwanie, wyszukiwanie, itp). Z użyciem zwykłych funkcji, nie byłby tak wygodny.
|
"Uzasadnij" :) Za pomocą funkcji również można zrealizować wygodne narzędzia, więc... też można w Twoim wypadku skutecznie kwestionować argumentację :) |
|
MeehoweCK Temat założony przez niniejszego użytkownika |
» 2013-04-10 15:28:39 W porządku. MNIEJ-WIĘCEJ rozumiem o co chodzi ;) W takim razie czekam cierpliwie na gotową piątą część kursu. |
|
pekfos |
» 2013-04-10 15:36:38 Za pomocą funkcji również można zrealizować wygodne narzędzia |
Nie twierdzę, że nie. Gdyby przerobić std::string, lub inną tego typu klasę, na strukturę i funkcje, to nie było by to tak wygodne, jak pierwowzór. Trzeba by za każdym razem podawać do funkcji to, co kompilator podaje do metod niejawnie. |
|
« 1 » |