Ten artykuł został stworzony dla starszych wersji GameMakera i może nie być aktualny.

Klasy i obiekty cz.1

Czwartek, 06 Października 2005, 17:58
Czas czytania 1 minuta, 45 sekund
Jeśli już poznałeś programowanie strukturalne w C++ czas na programowanie zorientowane obiektowo.
Jeśli już poznałeś programowanie strukturalne w C++ czas na programowanie zorientowane obiektowo. Już nie musisz myśleć o strukturach danych którymi manipulują funkcje tylko o obiektach (rzeczach).

1. Tworzenie nowych typów
Zapewne znasz już takie typy zmiennych jak liczby całkowite czy znaki. Typ zmiennej informuje nas co możemy w niej przechowywać, określanie go przy deklaracji informuje komputer ile miejsca w pamięci ma zarezerwować dla danej zmiennej. Warto tworzyć nowy typ, ponieważ znacznie łatwiej będzie się pisało rozbudowane programy.

2. Klasy i składowe
Deklarując klasę tworzy się nowy typ zmiennej. Klasa to grupa zmiennych przeważnie o różnych typach. Zmienna wewnątrz klasy to zmienna składowa lub dana składowa, a funkcja wewnątrz klasy to funkcja składowa lub metoda klasy. Deklaruje się ją w następujący sposób:
kodclass Samochod
{
    public:
    unsigned int rocznik;
    unsigned int waga;
    void Jedz();
};
Deklaracja takiej klasy informuje kompilator czym jest typ Samochod, jakie dane zawiera i co może robić oraz ile miejsca ma zarezerwować w pamięci.

3. Definiowanie obiektu
Obiekt nowego typu definiuje w następujący sposób:
kodSamochod BMW;Od tej chwili zmienna o nazwie BMW jest obiektem klasy Samochod. Gdy już obiekt danej klasy jest zdefiniowany możemy odwoływać się do składowych. Żeby zmiennej składowej rocznik obiektu BMW przypisać wartość 2000 powinniśmy napisać:
kodBMW.rocznik = 2000;A żeby wywołać funkcję Jedz powinniśmy napisać:
kodBMW.Jedz();
4. Prywatne i publiczne
Wszystkie dane składowe i metody klasy są domyślnie prywatne czyli takie które mogą być używane tylko przez metody należące do danej klasy. Natomiast składowe publiczne są dostępne dla innych funkcji oraz klas. Słowo kluczowe public oznacza że wszystkie składowe tej klasy po tym słowie są publiczne dopóki nie wystąpi private. Dodam też że istnieje jeszcze protected, działa tak samo jak private tylko że jest jeszcze dostępny dla klas potomnych tej klasy.
Komentarze (łącznie 7):
Pietrus_paN (Pią., 07 Paź. 05, 15:10)
#1

Nice :)

BeWuO (Pią., 07 Paź. 05, 15:28)
#2

A po co komu ten art? Przecież to jest w każdym kursie na początku? A że będą następne części jakoś nie wierze... =]

V
Vardi (Pią., 07 Paź. 05, 15:37)
#3

Nie bój się BeWuO ten art się przyda :) Jest tam napisane konkretnie o klasach i obiektach bez żadnych dodatkowych pierdół. :P Co do następnej części to będzie, ponieważ trzeba jeszcze pare rzeczy wytłumaczyć. :)

d
~dido9993 (Nie., 12 Lut. 06, 17:57)
#4

jak ktos chce sie pobawic w C++ to yaprasyam tutaj it.hk.pl .
jest doslownie wsyzstko o programowaniu w tzm jeyzku.

r
romeo (Pon., 11 Gru. 06, 08:53)
#5

Kurcze dajcie coś normalnego od czegoś co by Nowicjusz zaczoł a nie umieszczcie pliki do pobrania a niewiadomo gdzie potem je umiescic w FOLDERZE GM ?? POmuszcie plis

Dawidsu (Pon., 11 Gru. 06, 13:44)
#6

To jest w dziale przeznaczonym C++. Gdzie to panie do Gie-ema? :P

boom (Nie., 03 Sty. 10, 14:45)
#7

Samochod::Jedz()
{
std::cout<<"smacznego XD"<<std::endl;
}

Najnowsze wersje GameMakera:

LTS
2026.0.0.16 • 2022.0.3.99
wydana 158 dni temu
Beta
2026.100.0.1195 •
2026.100.0.1132
•
 GMRT beta 0.22.4

wydana  4 dni temu
= IDE, = Runtime, = GMRT
Użytkownicy online
1 użytkownik aktywny:
gości: 1,
(~ostatnie 15 minut)
Discord
46 użytkowników online na discordzie:
Miłosz, MorDan, Nikas, l..., Alice, Nitro Slav, 21Lancz, Carl-bot, pABLO, h..., Fox, GibkiKaktus, s..., Sporek, Kuzyn, GMRussell, Tidżi, fervi, 𝕳𝖚𝖌𝖔 𝕲𝖔𝖓𝖝𝖆𝖑𝖊𝖝, Radek Ignatów, Threef, Uzjel, NOTALOSZISZITER, Moldis, Murrri, MagnusArias, LKTstas, Pixel_Patric, Kandif, Jarkozpl, Dyno, 🆅🅸🆃🅾74🅼, szmalu, ZYGZAK, Danieo, MrTesterr, Voytec, 𝓐𝓷𝓪𝓼𝓽𝓪𝓼𝓲𝓪, l..., Cebul, Borek, moeglich, g..., Add92, Krzysiek1250, Shockah
Shoutbox
gnysek (11:10, 01.11.26)
teraz też wyróżnia nowe wpisy od ostatniej wizyty ;)
Borek (18:45, 31.10.26)
No, już jest lepiej :) Dalej retro, ale użyteczne :D To mi się podoba :)
gnysek (12:36, 31.10.26)
Ok, teraz jak wpiszesz więcej tekstu, to się po prostu automatycznie powiększa ;) I poprawiłem CSS dla tips/warns w artykułach i newsach na ciemnym motywie, tak porządnie. I teraz zapamiętuje "przeczytane" komentarze między przeglądarkami.
Adriann (15:31, 29.10.26)
Tak, rozumiem używanie ai jako narzędzia ale nie w ten sposób że nie widać w tym pracy człowieka :o
Borek (15:13, 26.10.26)
Nie narzekam na ruch (sam napisałem, że przynajmniej jakiś ruch jest), ale martwi mnie jakość "gier", które nagle zaczynają się pojawiać z dupy. "Catch the clown" przynajmniej był stworzony przez człowieka, tak samo jak opis na forum :)
Wojo (11:49, 26.10.26)
Nie ma ruchu - narzekacie, jest ruch - narzekacie. Nie są to gry z najwyższej półki, ale każdy robi tak jak potrafi. Za starych gmclanowych czasów było wiele produkcji amatorskiej jakości, ale dzięki temu forum tętniło życiem.
Borek (16:08, 25.10.26)
Chodzi mi o ten INPUT, jedna linia, ciężko się tutaj pizse :) Ja wiem, że retro, ale trochę QoL nie zaszkodzi :D
gnysek (16:00, 25.10.26)
A co jest nienormalnego? :D Jest takie jak zawsze było, pełne retro ;) Zerknę, w następny weekend planuję lekki update strony. 3 wpisy to nie tragedia, ale jak będzie wiecej AI slopu to pewnie zacznę kasować.
Borek (19:01, 24.10.26)
Kurde, forum zaczyna zalewać gówno z Claude twórców... :/ ale w sumie jakiś ruch jest :D. P.S. gnysek weź ogarnij tu jakieś normalne okno do pisana shoutów, bo to jakaś masakra jest...
gnysek (23:05, 08.10.26)
Były takie próby, widać co z tego wyszło ;)
Starsze wpisy znajdziesz w Archiwum.
Ankieta
Czy udostępnienie źródła GMRT dla każdego i brak opłat za licencje jest dobrym krokiem?