menu

darmowe eBooki

Efekt Motyla

okładka

Książka, która wywróci Twoje życie do góry nogami

Sprawdź sam, czytając darmowy fragment eBooka Efekt Motyla.

Czy ta wiedza okazała się dla Ciebie przydatna? Chcesz wiedzieć więcej? Zobacz tutaj.

Google Adsense

migawka z forum

Dowcipy o programistach/informatykach

Witam, grunt to potrafić śmiać sie z samego siebie  ;DPrzychodzi informatyk do domu po pra...

Rysiek z "Klanu"

W związku z ogromnym poruszeniem we wszystkich mediach w naszym kraju, dotyczącym tak kultowej postaci jak Rysiek z &quo...

Propozycje zmian w serwisie Guide C++

Witam, ze względu na to że nie znalazłem podobnego tematu na forum, a mam kilka sugestii   ;) postanowiłem je ...

buttony

SDJ
vortal programistów
Vademecum sieci komputerowych
Soldiers'04 - fan klub Legii Warszawa
www.katalog.bajery.pl
katalog stron
katalog najlepszych stron
jestem w katalogu
Wszystko o C++
[zamknij]

Korzystamy z plików cookies i umożliwiamy zamieszczanie ich osobom trzecim. Pliki cookie pozwalają na poznanie twoich preferencji na podstawie zachowań w serwisie.
Uznajemy, że jeżeli kontynuujesz korzystanie z serwisu, wyrażasz na to zgodę.

jesteś w: Kurs C++ / Struktury
Szkoła Hakerów - Kurs Hackingu Bez Cenzury

Struktury

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ę rozocząć 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.

  1. struct nazwa_struktury
  2. {
  3. //składniki struktury
  4. };

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.

  1. struct klocek
  2. {
  3. int wsp_x;
  4. int wsp_y;
  5. int kolor;
  6. };

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:

  1. klocek nasz_klocek;

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:

  1. nasz_klocek.wsp_x = 20;
  2. nasz_klocek.wsp_y = 30;
  3. nasz_klocek.kolor = 2;

Tym sposobem zainicjalizowaliśmy wszystkie składniki klocka. Aby było prościej można to zrobić od razu przy definicji. Wowczas należałoby napisać tak:

  1. klocek nasz_klocek = {20, 30, 2};

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.