Professional Documents
Culture Documents
OOP-C++-3-Klase I Konstruktori-2018 PDF
OOP-C++-3-Klase I Konstruktori-2018 PDF
Teme
Definiranje klase
Stvaranje objekata, članske varijable i metode
Konstruktori, destruktori
Cons funkcije
Inline funkcije
Objektno-orijentirano programiranje
u programskom jeziku C++
11.10.2018. 1 11.10.2018. 2
Klasa Klase
Klasa - skup podataka koja sadrži stanje i funkcije koje definiraju ponašanje objekata Klasa je novi tip podataka (“poopćenje strukture”: osim različitih tipova podataka
istog tipa sadrži i operacije sa modifikatorima pristupa)
Klasa predstavlja prikladan način grupiranja povezanih podataka i funkcija koje koriste
Varijable unutar klase nazivamo podatkovnim članovima ili članskim
te podatke.
varijablama (engl. data members, ili data variables)
Objekti se stvaraju (instanciraju) na temelju opisa definiranog u klasi (Abstract data type
– ADT = grupiranje operacija zajedno s podacima različitog tipa) neke članske varijable klasa Automobil: broj_vrata, broj_sjedala, godiste itd.
Pojavnost (instanca) klase i objekt su sinonimi ! Funkcije unutar klase obično manipuliraju podatkovnim članovima, a njih
nazivamo funkcijskim članovima ili metodama (engl. member functions,
methods)
ATRIBUTI:
moguće članske funkcije klase Automobil: Kreni(), Koci() itd.
nazivMarke
nazivModela Primjer klase:
serijskiBroj
KLASA kapacitet Klasa Macka:
PerilicaRublja volumenBubnja - članske var: godine, težinu;
motor
vrstaMotora - funkcije: Spavaj(), Mijau(), LoviMisa();
11.10.2018. 3 11.10.2018. 4
11.10.2018. 5 11.10.2018. 6
11.10.2018. 9 11.10.2018. 10
11.10.2018. 11 11.10.2018. 12
objekt Stog
Npr. postavljanje vrijednosti članskoj varijabli tezina (kad je pristup dozvoljen):
Tom.tezina = 2.5; uništavanje oslobađanje
bitovi
11.10.2018. 13
11.10.2018. 14
Sakriti informacije o podacima i implementaciji u privatni dio klase s pomoću modifikatora vidljivosti ograničava se pristup
(enkapsulacija - skrivanje) – klasa kao “crna kutija” ograničavanje pristupa provodi se već pri prevođenju programa
Javno prikazati skup operacija koja će se primjenjivati na instancama članovi klasa imaju tri modifikatora vidljivosti:
klase (sučelje) public – javne članske varijable i funkcije vidljive su svakom objektu klase i svim
Prava pristupa ograničavaju se modifikatorima vidljivosti. korisnicima koji imaju pristup klasi
private – privatne članske varijable i funkcije vidljive su samo funkcijama klase u
Klase nas “prisiljavaju” da sučelje i implementaciju potpuno odvajamo,
kojoj su definirane
čak i kada to zahtijeva “više posla”.
protected – zaštićene članske varijable i funkcije vidljive su u klasi kojoj su
definirane i u klasama koje su ju javno nasljedile (detalji kod nasljeđivanja)
11.10.2018. 15 11.10.2018. 16
11.10.2018. 17 11.10.2018. 18
11.10.2018. 21 11.10.2018. 22
11.10.2018. 25
11.10.2018. 26
11.10.2018. 29 11.10.2018. 30
Podrazumijevani konstruktori vs. inicijalizacija primitivnih tipova Inicijalizacija konstruktora inicijalizacijskom listom
alokacja mem. za Objekt mali
i inicijalizacija: Inicijalizacijska lista omogućuje prosljeđivanje vrijednosti:
konstruktorima članske varijable
v=15; visina = v
Objektni tipovi konstruktorima nadklase
visina 15.0
Pravokutnik mali(15,20);
sirina 20.0 Koristi se () forma inicijalizacije tako da su inicijalizacijske vrijednosti
unutar (), a nakon parametara konstruktora koristi se operator :
s=20; sirina = s
11.10.2018. 31 11.10.2018. 32
11.10.2018. 41 11.10.2018. 42
Struktura je vrlo slična Klasi. Kako definirati novu klasu i stvarati objekte te klase?
Kod strukture ključna riječ struct, a deklaracija je jednaka kao ona kod Što su funkcijski članovi i podatkovni članovi (engl. member function &
klase. member data)?
U C++, struktura je isto što i klasa, osim što su članovi strukture javni po Što su konstruktori, a što destruktori?
defaultu Što su privatni, a što javni objekti?
Kako napraviti datoteku zaglavlja?
11.10.2018. 43 11.10.2018. 44