Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Programowanie obiektowe

Ostatnio zmodyfikowano 2013-04-10 15:36
Autor Wiadomość
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.
P-80263
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:
C/C++
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.
P-80270
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.
P-80272
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.
P-80306
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?
P-80315
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ę :)
P-80316
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.
P-80319
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.
P-80320
« 1 »
  Strona 1 z 1