Pocz膮wszy od tego rozdzia艂u b臋dzie ju偶 bardzo przyjemnie 馃檪 Cho膰 to wcale nie oznacza, 偶e 艂atwo 馃檨 Po prostu struktury oraz klasy to typy danych, za pomoc膮 kt贸rych mo偶na znacznie u艂atwi膰 sobie programowanie. Wprowadzenie struktur stanowi艂o du偶y krok do przodu w dziedzinie programowania. Dzi臋ki strukturom mo偶na w 艂atwy spos贸b tworzy膰 obiekty odzwierciedlaj膮ce przedmioty z 偶ycia codziennego! Domy艣lasz si臋 co to oznacza? Za ich pomoc膮 mo偶na stworzy膰 niemal wszystko. Aby bardziej przybli偶y膰 jaka jest z tego korzy艣膰 przytocz臋 ma艂y przyk艂ad.
Za艂贸偶my, 偶e chcesz napisa膰 ma艂膮 gierk臋. Niech to b臋dzie ma艂o znana gierka z gatunku tetris 馃檪 Jak pami臋tasz, pisanie programu powinno si臋 rozpocz膮膰 od wcze艣niejszego obmy艣lenia. Nale偶y wi臋c przygotowa膰 jakie艣 zmienne opisuj膮ce plansz臋 oraz klocki istniej膮ce w grze. Plansze najlepiej zrealizowa膰 w formie tablicy. Z klockami jest ju偶 gorzej. Przecie偶 w takich gierkach istnieje kilka rodzaj贸w klock贸w. Powiedzmy, 偶e jest ich 20 typ贸w. Mo偶na traktowa膰 ka偶dy klocek jak liczb臋聽int,聽short聽czy聽long. Jednak co w sytuacji, gdy liczba klock贸w wzro艣nie i wyniesie [b臋d臋 okrutny 馃檪 200]. Operowanie za pomoc膮 numerk贸w jest troch臋 niewdzi臋czne. Co wi臋c robi膰? Jest rada. Najlepiej samemu zdefiniowa膰 sobie聽nowy typ danych聽opisuj膮cy konkretny klocek! Tutaj w艂a艣nie przydadz膮 nam si臋 struktury. Czy偶 to nie wspania艂e?! Zobacz teraz jak si臋 tworzy nowy typ.

To co艣 powy偶ej to definicja struktury. Ka偶da definicja zaczyna si臋 od s艂owa kluczowego聽struct. Nast臋pnie pojawia si臋 konkretna nazwa. U nas b臋dzie to klocek_kostka,聽klocek_dwie_kostki聽i聽klocek_trzy_kostki聽itp. Oczywi艣cie w przypadku nazwy obowi膮zuj膮 te same regu艂y jak przy zmiennych i funkcjach. Cia艂o struktury, czyli jej zakres okre艣lany jest za pomoc膮 klamer. Zauwa偶 podobie艅stwo do definicji typu聽enum. Na koniec ma艂y detal. Definicj臋 struktury聽trzeba聽zako艅czy膰 艣rednikiem. Pozosta艂o jeszcze wyja艣ni膰 czym s膮 sk艂adniki struktury. Sk艂adnikami s膮 wszelkie obiekty, kt贸re charakteryzuj膮 dany obiekt. Dla typu klocek b臋dzie to aktualne po艂o偶enie, kolor, wygl膮d itp. Wyb贸r sk艂adnik贸w zale偶y ju偶 od programisty. Zdefiniujmy zatem struktur臋 do przechowywania klocka.

Zdefiniowali艣my sobie struktur臋 o nazwie klocek. Dzi臋ki temu niejako rozbudowali艣my C++ o nowy rodzaj danych. Obiekty typu klocek posiadaj膮 w sobie po trzy obiekty typu int. Pierwszy z nich to wsp贸艂rz臋dna 'x’, drugi wsp贸艂rz臋dna 'y’, a trzeci to kolor. Od teraz w dowolnym momencie mo偶emy korzysta膰 z obiekt贸w typu klocek. Definicja wygl膮da nast臋puj膮co:

W przyk艂adzie powo艂ali艣my do 偶ycia zmienn膮 typu klocek o nazwie聽nasz_klocek. Oczywi艣cie automatycznie zosta艂y utworzone trzy zmienne typu聽int, b臋d膮ce sk艂adnikami klocka. Aby odnie艣膰 si臋 do poszczeg贸lnych sk艂adnik贸w nale偶y poda膰 nazw臋 zmiennej [u nas jest to聽nasz_klocek], p贸藕niej trzeba napisa膰 kropk臋 i nazw臋 konkretnego sk艂adnika. Wygl膮da to tak:

Tym sposobem zainicjalizowali艣my wszystkie sk艂adniki klocka. Aby by艂o pro艣ciej mo偶na to zrobi膰 od razu przy definicji. W贸wczas nale偶a艂oby napisa膰 tak:

Przy takim definiowaniu pami臋taj o w艂a艣ciwej kolejno艣ci. Liczba 20 zostanie wstawiona do pierwszego sk艂adnika klocka, liczba 30 do drugiego, a liczba 2 do trzeciego. Oczywi艣cie nie trzeba podawa膰 tutaj wszystkich danych. Je偶eli kolor klocka [trzeci sk艂adnik] w momencie definiowania jest nieistotny, to mo偶na usun膮膰 z przyk艂adu liczb臋 2. W贸wczas kolor klocka b臋dzie przypadkow膮 liczb膮. Chyba jest to zrozumia艂e. W strukturze mog膮 istnie膰 dowolne zmienne. Mo偶na nawet umie艣ci膰 tam tablice lub wska藕niki. Liczba sk艂adnik贸w nie ma znaczenia. To ju偶 zale偶y od przeznaczenia samej struktury. Struktury posiadaj膮 jeszcze jedn膮 bardzo przydatn膮 cech臋. Wszelkie nazwy u偶yte wewn膮trz struktury s膮 znane聽jedynie聽w jej wn臋trzu. Zatem nie musisz dba膰 o unikalno艣膰 nazw. Jak widzisz nie jest to a偶 takie trudne, a korzy艣膰 jest ogromna. Obecnie udzia艂 struktur w programowaniu zaczyna by膰 coraz mniejszy. Zosta艂y one wyparte przez klasy, kt贸rymi si臋 teraz zajmiemy.

Autor:聽Kesay

[Artyku艂 pochodzi ze strony guidecpp.prv.pl, autor wyrazi艂 zgod臋 na publikacj臋]