Najjednostavnije rečeno; klasa je struktura podataka koja omogućava da svojstva i metode posmatramo kao zaseban objekat. Klasa je način da se napravi tip podataka koji ima i stanje i ponašanje. U principu to je samo kolekcija promenjivih različitih tipova koji su kombinovani sa skupom povezanih funkcija. Prva stvar koju trebate shvatiti prilikom učenja klasa su mnoštvo novih programerskih pojmova, ključni reči na engleskom jeziku koje često i kad se prevedu, ostavljaju početnike zbunjenim. Iskusan programer može satima pričati o klasama dok ga početnici slušaju i pitaju se o čemu ovaj priča. Zato je neophodno da razumete svaki pojam kad ga koristite inače vi možete praktično praviti klase da čak i ne razumete kad nešto u klasi treba da koristite a kad ne. Zato vam savetujem bez žurbe i mnogo
google-anja i praktični rešenja sa stalnim samoispitivanjem (
Zašto baš onako kad može i ovako? ); dok ne shvatite. Klase se ne mogu objasniti jednim postom, zato ću ovu temu opisati u više postova. Klase su najznačajnije obilježje
C++ programskog jezika, one vas uvode u objektno orijentisanje podataka s mnoštvom mogućnosti što podrazumeva i više odluka i odgovornosti. U
C programskom jeziku nemate klase; zato se mnogo koriste strukture, dok u
C# programskom jeziku rad sa klasama je mnogo jednostavniji i drugačiji zahvaljujući
.Net Framework-u. U
C++ programskom jeziku rad sa klasama je nešto komplikovaniji.
( Definicija klase u C++ programskom jeziku )
U klasičnom programiranju, kod i podaci su odvojeni.
OOP – Objektno orjentisano programiranje taj odnos menja i omogućava vam da pakujete i podatke i kod zajedno u nešto što zovemo klasa. Klasa omogućava da zamotate različite promenjive i funkcije u kolekciju i to zovemo objekat. Ali sam postupak svega toga zovemo
enkapsuliranje. Znači da
enkapsuliranje shvatite kao
zamotavanje. Prednost
enkapsuliranja je u tome što npr. sve karakteristike i ponašanje kućnih ljubimaca stavite u jednu klasu i nazovete je životinja. Kad vam trebaju karakteristike kućnog ljubimca dovoljno je da pozovete klasu životinja u svom programu. Ali nije sve samo na tome. Mnoštvo je mogućnosti šta vi sve možete da radite sa vašom klasom i do koje mere možete da utičete kako će se tipovi podataka i funkcije ponašati, čak i druge klase uključene u vašu klasu. Klasa se pravi prvo deklarisanjem i ovo je opšta sintaksa za
C++ ključnu reč
class:
class ime_klase {
deklaracije
};
Obratite pažnju da blok klase obavezno mora da se završi sa „ ; “, ukoliko pišete vašu klasu u isti fajl gde pišete i program. Klasu ne možete pisati u funkciji main() kao ni funkcije, nego klase se često pišu iznad deklaracije main() dok se funkcije pišu ispod. Klase uvek počinju deklaracijom kao što su deklaracija promenjivih, deklaracija funkcija ili i jednog i drugog što imate u klasi. Uglavnom dok učite klase i često u malim programima; klase se pišu u istom fajlu vašeg programa, međutim u projektima tako nešto je neprihvatljivo. Klase se u projektima pišu u odvojenim fajlovima gde se deklaracija klase upisuje u header fajl dok se ostali kod piše u fajlu klase, i onda se inicijalizuje pozivaju preko header fajla.
Kako da napišem jednostavnu malu klasu i pokrenem je u svom programu?