[ Pobierz całość w formacie PDF ]
w postaci nowego typu danych za pomoc instrukcji typedef. Jednak istniej
pewne wady takiego podej cia:
310 Lekcja 10. Klasy i obiekty
Struktury i operuj ce na nich funkcje nie s spójnymi ca o ciami. Funkcje
mo na znale jedynie poprzez odczyt plików nag ówkowych z dost pnych
bibliotek i wyszukanie tych z nowym typem jako parametrem.
Koordynacja aktywno ci grupy powi zanych funkcji w strukturze jest trudniejszym
zadaniem, poniewa dowolny fragment logiki programu mo e w dowolnej
chwili zmieni cokolwiek w strukturze. Z tego powodu nie ma mo liwo ci
ochrony struktury przed ingerencj .
Wbudowane operatory nie dzia aj ze strukturami nie dzia a nawet
dodanie dwóch struktur za pomoc znaku plus (+), cho taka operacja
mog aby si wydawa najbardziej naturalnym sposobem przedstawienia
rozwi zania problemu (na przyk ad, kiedy ka da struktura przedstawia
skomplikowane fragmenty tekstu, które maj by ze sob po czone).
Wprowadzenie klas
i elementów sk adowych
Nowy typ zmiennych tworzy si , deklaruj c klas . Klasa jest w a ciwie grup
zmiennych cz sto o ró nych typach skojarzonych z zestawem odnosz cych
si do nich funkcji.
Jedn z mo liwo ci my lenia o samochodzie jest potraktowanie go jako zbioru
kó , drzwi, foteli, okien itd. Inna mo liwo to wyobra enie sobie, co samochód
mo e zrobi : je dzi , przyspiesza , zwalnia , zatrzymywa si , parkowa itd.
Klasa umo liwia hermetyzacj , czyli upakowanie, tych ró nych cz ci oraz
ró nych dzia a w jeden zbiór, który jest nazywany obiektem.
Upakowanie wszystkiego, co wiesz o samochodzie, w jedn klas przynosi
programi cie liczne korzy ci. Wszystko jest na miejscu, u atwia to odwo ywanie si ,
kopiowanie i manipulowanie danymi. Klienci Twojej klasy tj. te cz ci programu,
które z niej korzystaj mog u ywa Twojego obiektu bez zastanawiania si ,
co znajduje si w rodku i jak on dzia a.
Klasa mo e sk ada si z dowolnej kombinacji zmiennych prostych oraz zmiennych
innych klas. Zmienna wewn trz klasy jest nazywana zmienn sk adow lub
dan sk adow . Klasa Car (samochód) mo e posiada sk adowe reprezentuj ce
siedzenia, typ radia, opony itd. Zmienne sk adowe s zmiennymi w danej klasie.
Stanowi one cz klasy, tak jak ko a i silnik stanowi cz samochodu.
Wprowadzenie klas i elementów sk adowych 311
Klasa mo e zawiera równie funkcje, które s wówczas nazywane funkcjami
sk adowymi lub metodami. Podobnie jak zmienne sk adowe, stanowi cz
klasy i okre laj , co dana klasa mo e zrobi .
Funkcje w danej klasie zwykle manipuluj zmiennymi sk adowymi. Przyk adowo,
metodami klasy Car mog by Start() (uruchom) oraz Brake() (hamuj). Klasa Cat
(kot) mo e posiada zmienne sk adowe, reprezentuj ce wiek i wag ; jej metodami
mog by Sleep() ( pij), Meow() (miaucz) czy ChaseMice() ( ap myszy).
Deklarowanie klasy
Deklaracja klasy informuje kompilator o jej istnieniu. Aby zadeklarowa klas ,
u yj s owa kluczowego class, po którym nast puje otwieraj cy nawias klamrowy,
a nast pnie lista danych sk adowych i metod tej klasy. Deklaracja ko czy si
zamykaj cym nawiasem klamrowym i rednikiem. Oto deklaracja klasy o nazwie
Cat (kot):
class Cat
{
unsigned int itsAge;
unsigned int itsWeight;
void Meow();
};
Zadeklarowanie takiej klasy nie powoduje zaalokowania pami ci dla obiektu Cat.
Informuje jedynie kompilator, czym jest typ Cat, jakie dane zawiera (itsAge
jego wiek oraz itsWeight jego waga) oraz co mo e robi (Meow() miaucz).
Informuje tak e kompilator, jak du a jest zmienna typu Cat to jest, jak du o
miejsca w pami ci ma przygotowa w przypadku tworzenia zmiennej typu Cat.
W tym przyk adzie, o ile typ int ma cztery bajty, zmienna typu Cat zajmuje osiem
bajtów: cztery bajty dla zmiennej itsAge i cztery dla zmiennej itsWeight.
Funkcja Meow() nie zajmuje miejsca, gdy dla funkcji sk adowych (metod)
miejsce nie jest rezerwowane. Jest to wska nik do funkcji, który na platformie
32-bitowej mo e zaj cztery bajty.
Kilka s ów o konwencji nazw
Jako programista, musisz nazwa wszystkie swoje zmienne sk adowe, funkcje
sk adowe oraz klasy. Jak przeczyta e w lekcji 3., Sta e i zmienne , nazwy te
powinny by zrozumia e i znacz ce. Dobrymi nazwami klas mog by wspomniana
312 Lekcja 10. Klasy i obiekty
Cat, Rectangle (prostok t) czy Employee (pracownik). Meow(), ChaseMice()
czy StopEngine() (zatrzymaj silnik) równie s dobrymi nazwami funkcji, gdy
informuj , co robi te funkcje. Wielu programistów nadaje nazwom zmiennych
sk adowych przedrostek its (jego), tak jak w zmiennych itsAge, itsWeight
czy itsSpeed (jego szybko ). Pomaga to w odró nieniu zmiennych sk adowych
od innych zmiennych.
Niektórzy programi ci wol przedrostek my (mój), tak jak w nazwach myAge,
myWeight czy mySpeed. Jeszcze inni u ywaj po prostu litery m (od s owa member
sk adowa), czasem wraz ze znakiem podkre lenia (_): mAge i m_age, mWeight
i m_weight czy mSpeed i m_speed.
Niektórzy programi ci lubi poprzedzi ka d nazw klasy okre lon liter
na przyk ad cCat czy cPerson podczas, gdy inni u ywaj wy cznie du ych
lub ma ych liter. Ja sam korzystam z konwencji, w której wszystkie nazwy klas
rozpoczynaj si od du ej litery, tak jak Cat czy Person (osoba).
Wielu programistów rozpoczyna wszystkie nazwy funkcji od du ej litery, za
wszystkie nazwy zmiennych od ma ej. S owa zwykle rozdzielane s znakiem
podkre lenia tak jak w Chase_Mice lub poprzez zastosowanie du ej litery
dla ka dego s owa na przyk ad ChaseMice czy DrawCircle (rysuj okr g).
Wa ne jest, by wybra okre lony styl i trzyma si go w ka dym programie.
Z czasem rozwiniesz swój styl nie tylko na konwencje nazw, ale tak e na wci cia,
wyrównanie nawiasów klamrowych oraz styl komentarzy.
W firmach programistycznych powszechne jest okre lenie standardu wielu
elementów stylu zapisu kodu ród owego. Sprawia on, e wszyscy programi ci
mog atwo odczytywa wzajemnie swój kod. Niestety, przenosi si to równie do
firm opracowuj cych systemy operacyjne i biblioteki klas przeznaczonych do
ponownego u ytku. Zazwyczaj oznacza to, e w programach C++ jest jednocze nie
stosowanych wiele ró nych konwencji nazw.
Jak ju wcze niej wspomniano, j zyk C++ uwzgl dnia wielko liter, dlatego
[ Pobierz całość w formacie PDF ]
Podstrony
- Indeks
- Java_Kompendium_programisty_Wydanie_VIII_javkp8(1)
- WilczyśÂska Karolina Stacja Jagodno. Zaplć tana MilośÂćÂ
- Lyda Morehouse Archangel 03 Messiah Node
- Caine Rachel Wampiry z Morganville 08 PocaśÂunek śÂmierci
- John DeChancie Castle 05 Castle Murders
- BIBLIOGRAPHY #8 Cyril of Jerusalem & Early Christian Worship
- 2004 14. Zimowe śÂluby 2. Skandaliczne zaloty Whitiker Gail
- Oliver Anne śÂwiatowe śąycie Duo 321 Kawaler roku
- Le Guin Ursula OpowieśÂci orsiniaśÂskie
- Jerry Sohl I, Aleppo
- zanotowane.pl
- doc.pisz.pl
- pdf.pisz.pl
- felgiuzywane.opx.pl