SlideShare a Scribd company logo
1 of 17
Download to read offline
Računarski praktikum 1
Predavanja
Goran Igaly
Sveučilište u Zagrebu
PMF, Matematički odsjek
9. predavanje
(objektno orijentirani dizajn)
2
Niz koraka u oblikovanju
komponente
 1) Određivanje koncepata/klasa i temeljnih relacija među
njima
 2) Profinjenje klasa određivanjem skupa operacija nad
njima
 Klasificiranje operacija - posebno konstruktora, destruktora,
konstruktora kopiranja
 3) Profinjenje klasa određivanjem zavisnosti
 mogućnosti parametrizacije, nasljeđivanja, korištenje zavisnosti
 4) Definiranje sučelja
 Odvajanje funkcija u javne i privatne operacije
 Određivanje točnog tipa operacija na klasama
3
1) Određivanje klasa
 Razgovor s budućim korisnicima sustava ili (nezadovoljnim) korisnicima
postojećeg sustava
 imenice >> klase i objekti
 glagoli >> operacije na objektima
 Odmak od postojećeg sustava
 Generalizacija i specijalizacija (primjer kružnice i elipse)
 Analiza slučajeva (primjera) korištenja (use case) (Iniciranje poziva =
podigni slušalicu; nazovi broj; telefon na drugoj strani zvoni; osoba na
drugoj strani podiže slušalicu)
 Nakon nekoliko primjera korištenja, oblikuje se sustav i testira kako
funkcionira u ostalim slučajevima (iterativni proces) – pokrivanje u prvoj
fazi cca 80% glavnih situacija
 Neka bitna svojstva sustava (pouzdanost, performanse, provjera
ispravnosti) ne mogu se reprezentirati klasama
4
2) Određivanje operacija
 Kako se objekt neke klase konstruira, uništava, kopira
 Koji je minimalni skup operacija potreban za
funkcioniranje klase
 Određivanje standardnih naziva i funkcionalnosti u svim
klasama unutar komponente
 Operacije:
 stvaranje i uništavanje
 nadzor (ne mijenjaju stanje objekta)
 promjena (mijenjaju stanje objekta)
 konverzija (generiranje objekta drugog tipa ovisno o stanju
originalnog objekta)
 iterator (pristup i korištenje niza sadržanih objekata)
5
3) Određivanje zavisnosti
 Zavisnosti
 parametrizacija
 nasljeđivanje
 korištenje relacija
 Ne pretjerivati u korištenju zavisnosti
6
4) Određivanje sučelja
 Privatne funkcije obično ne treba razmatrati u fazi
dizajna. Ove funkcije bi trebale biti izvedive
neovisno o implementaciji
 Javne funkcije – specificiraju se točni tipovi
argumenata
7
Korištenje modela
 Uvijek kada je moguće, dizajn i programiranje
trebaju biti temeljeni na prethodnom radu
 Odabir modela pogodnog za prilagodbu
 Korištenje obrazaca u programiranju – korištenje
konkretnih primjera za ilustraciju općeg principa
 Svaki uspješan veliki sustav nastao je redizajnom
nekog manjeg upogonjenog sustava
8
Eksperimentiranje, analiza,
testiranje
 Prototip – umanjena verzija sustava ili nekog
njegovog dijela
 Kako testirati, što testirati? Situacije koje mogu
imati kobne posljedice i situacije koje se često
javljaju. Testiranju se obično ne posvećuje
dovoljno pažnje
9
Održavanje softvera
 Redizajn, ponovna implementacija – tj. ciklus
razvoja programa
 Obično vezano za istu razvojnu skupinu
(dokumentacija bolje pomaže razumijevanju
detalja nego u razumijevanju ključnih ideja i
principa)
10
Učinkovitost
 Čist i jednostavan dizajn
 Optimizacija u kasnijoj fazi, na temelju mjerenja
performansi i određivanja uskih grla
 U fazi dizajna treba nastojati izbjegavati rješenja
koja će se kasnije teško optimizirati
11
I još...
 Upravljanje softverskim projektom
 Ponovna upotrebljivost koda
 Mogućnost primjene rješenja na veće probleme
 Izvedivost s postojećim ljudskim resursima
 Hibridni dizajn
12
Uloga klasa – razine apstrakcije
 Kuća:
 atomi
 molekule
 cigle i druga građa
 podovi, zidovi, stropovi
 sobe
 odgovarajuća razina detalja i odgovarajuća razina
apstrakcije
13
Hijerarhija klasa
 usmjereni aciklički graf klasa
Vozilo
Policijski_automobil
KamionAutomobil
Vozilo_hitne_pomoci Vatrogasno_vozilo
Interventno_vozilo
14
Implementacije hijerarhije klasa
 class Vozilo { /* ... */ };
 class Interventno_vozilo { /* ... */ };
 class Automobil : public Vozilo { /* ... */ };
 class Kamion : public Vozilo { /* ... */ };
 class Policijski_automobil : public Automobil, protected
Interventno_vozilo { /* ... */ };
 class Vozilo_hitne_pomoci : public Automobil, protected
Interventno_vozilo { /* ... */ };
 class Vatrogasno_vozilo: public Kamion, protected
Interventno_vozilo { /* ... */ };
15
protected, private, public
 private – ime se može koristiti samo u članskim
funkcijama
 protected – ime se može koristiti samo u članskim
funkcijama klase u kojoj je deklarirano, te u
klasama izvedenim iz te klase
 public – ime se može koristiti u svim funkcijama
16
Izvedene klase
 Savladavanje kompleksnosti hijerarhijskim
uređajem
 organiziranje povezanih koncepata u strukturu
stabla, pri čemu je najopćenitiji koncept u
korijenu stabla
 U C++ izvedene klase
(derived class) predstavljaju
takve strukture
Izvedene klase (2)
 Programer zadaje određeni broj temeljnih klasa,
pri čemu svaka od njih ima vlastiti skup izvedenih
klasa. Za definiranje operacija na najopćenitijoj
verziji koncepta (temeljnoj klasi) se često koriste
virtualne funkcije.
 Kada je potrebno, ove operacije se mogu
prilagoditi za pojedine specijalne slučajeve
(izvedene klase)
17

More Related Content

Viewers also liked

Instalacija i podešavanje word press bloga
Instalacija i podešavanje word press blogaInstalacija i podešavanje word press bloga
Instalacija i podešavanje word press blogaKruno Klukovic
 
WordPress za početnike
WordPress za početnikeWordPress za početnike
WordPress za početnikeDejanVesic
 
Responsive Web Design tehnike u WordPress-u
Responsive Web Design tehnike u WordPress-uResponsive Web Design tehnike u WordPress-u
Responsive Web Design tehnike u WordPress-uIgor Benić
 
Wordpress - Sistem za upravljanje sadržajem na webu
Wordpress - Sistem za upravljanje sadržajem na webuWordpress - Sistem za upravljanje sadržajem na webu
Wordpress - Sistem za upravljanje sadržajem na webuMilan Stošić
 
script for castle - halsey
script for castle - halseyscript for castle - halsey
script for castle - halseyfurlon8949
 
จักรกลของร่างกาย 14 จมูกและลิ้น
จักรกลของร่างกาย 14 จมูกและลิ้นจักรกลของร่างกาย 14 จมูกและลิ้น
จักรกลของร่างกาย 14 จมูกและลิ้นKunkru PeeChat
 
Universal Design Meets the Exit Sign White Paper Performance Assessment Templ...
Universal Design Meets the Exit Sign White Paper Performance Assessment Templ...Universal Design Meets the Exit Sign White Paper Performance Assessment Templ...
Universal Design Meets the Exit Sign White Paper Performance Assessment Templ...Lee Wilson
 
Providing a voice for the voiceless
Providing a voice for the voicelessProviding a voice for the voiceless
Providing a voice for the voicelessZane Small
 
Palm Lights founder shares her thoughts on business integrity
Palm Lights founder shares her thoughts on business integrity Palm Lights founder shares her thoughts on business integrity
Palm Lights founder shares her thoughts on business integrity Zane Small
 
Evacuation of People with Disability and Emergent Limitations: Considerations...
Evacuation of People with Disability and Emergent Limitations: Considerations...Evacuation of People with Disability and Emergent Limitations: Considerations...
Evacuation of People with Disability and Emergent Limitations: Considerations...Lee Wilson
 
ACAA Universal Design Meets the Exit Sign, Lee Wilson, 8 October 2015
ACAA Universal Design Meets the Exit Sign, Lee Wilson, 8 October 2015ACAA Universal Design Meets the Exit Sign, Lee Wilson, 8 October 2015
ACAA Universal Design Meets the Exit Sign, Lee Wilson, 8 October 2015Lee Wilson
 
Profiling php5 to php7
Profiling php5 to php7Profiling php5 to php7
Profiling php5 to php7julien pauli
 
WordPressサイトをiPhoneアプリにしてみた
WordPressサイトをiPhoneアプリにしてみたWordPressサイトをiPhoneアプリにしてみた
WordPressサイトをiPhoneアプリにしてみたKiharu Sasaki
 
Razvoj mobilnih aplikacija (Mobile Application Development)
Razvoj mobilnih aplikacija (Mobile Application Development)Razvoj mobilnih aplikacija (Mobile Application Development)
Razvoj mobilnih aplikacija (Mobile Application Development)Ivan Percan
 
WordPress teme za početnike - uvod u Theme Development
WordPress teme za početnike - uvod u Theme DevelopmentWordPress teme za početnike - uvod u Theme Development
WordPress teme za početnike - uvod u Theme DevelopmentIvan Percan
 

Viewers also liked (19)

Instalacija i podešavanje word press bloga
Instalacija i podešavanje word press blogaInstalacija i podešavanje word press bloga
Instalacija i podešavanje word press bloga
 
WordPress za početnike
WordPress za početnikeWordPress za početnike
WordPress za početnike
 
Responsive Web Design tehnike u WordPress-u
Responsive Web Design tehnike u WordPress-uResponsive Web Design tehnike u WordPress-u
Responsive Web Design tehnike u WordPress-u
 
Wordpress - Sistem za upravljanje sadržajem na webu
Wordpress - Sistem za upravljanje sadržajem na webuWordpress - Sistem za upravljanje sadržajem na webu
Wordpress - Sistem za upravljanje sadržajem na webu
 
script for castle - halsey
script for castle - halseyscript for castle - halsey
script for castle - halsey
 
จักรกลของร่างกาย 14 จมูกและลิ้น
จักรกลของร่างกาย 14 จมูกและลิ้นจักรกลของร่างกาย 14 จมูกและลิ้น
จักรกลของร่างกาย 14 จมูกและลิ้น
 
Universal Design Meets the Exit Sign White Paper Performance Assessment Templ...
Universal Design Meets the Exit Sign White Paper Performance Assessment Templ...Universal Design Meets the Exit Sign White Paper Performance Assessment Templ...
Universal Design Meets the Exit Sign White Paper Performance Assessment Templ...
 
Providing a voice for the voiceless
Providing a voice for the voicelessProviding a voice for the voiceless
Providing a voice for the voiceless
 
Ценности
ЦенностиЦенности
Ценности
 
Shot list j;j
Shot list j;jShot list j;j
Shot list j;j
 
Palm Lights founder shares her thoughts on business integrity
Palm Lights founder shares her thoughts on business integrity Palm Lights founder shares her thoughts on business integrity
Palm Lights founder shares her thoughts on business integrity
 
Šta je Bootstrap?
Šta je Bootstrap?Šta je Bootstrap?
Šta je Bootstrap?
 
Evacuation of People with Disability and Emergent Limitations: Considerations...
Evacuation of People with Disability and Emergent Limitations: Considerations...Evacuation of People with Disability and Emergent Limitations: Considerations...
Evacuation of People with Disability and Emergent Limitations: Considerations...
 
ACAA Universal Design Meets the Exit Sign, Lee Wilson, 8 October 2015
ACAA Universal Design Meets the Exit Sign, Lee Wilson, 8 October 2015ACAA Universal Design Meets the Exit Sign, Lee Wilson, 8 October 2015
ACAA Universal Design Meets the Exit Sign, Lee Wilson, 8 October 2015
 
Profiling php5 to php7
Profiling php5 to php7Profiling php5 to php7
Profiling php5 to php7
 
WordPressサイトをiPhoneアプリにしてみた
WordPressサイトをiPhoneアプリにしてみたWordPressサイトをiPhoneアプリにしてみた
WordPressサイトをiPhoneアプリにしてみた
 
Uvod u programiranje
Uvod u programiranjeUvod u programiranje
Uvod u programiranje
 
Razvoj mobilnih aplikacija (Mobile Application Development)
Razvoj mobilnih aplikacija (Mobile Application Development)Razvoj mobilnih aplikacija (Mobile Application Development)
Razvoj mobilnih aplikacija (Mobile Application Development)
 
WordPress teme za početnike - uvod u Theme Development
WordPress teme za početnike - uvod u Theme DevelopmentWordPress teme za početnike - uvod u Theme Development
WordPress teme za početnike - uvod u Theme Development
 

More from Goran Igaly

Predavanja3. word 1
Predavanja3.   word 1Predavanja3.   word 1
Predavanja3. word 1Goran Igaly
 
Mogućnosti korištenja mikrokontrolera u obrazovanju i raniji slični projekti
Mogućnosti korištenja mikrokontrolera u obrazovanju i raniji slični projektiMogućnosti korištenja mikrokontrolera u obrazovanju i raniji slični projekti
Mogućnosti korištenja mikrokontrolera u obrazovanju i raniji slični projektiGoran Igaly
 
Nacionalni parkovi
Nacionalni parkoviNacionalni parkovi
Nacionalni parkoviGoran Igaly
 
Nova prezentacija
Nova prezentacijaNova prezentacija
Nova prezentacijaGoran Igaly
 
LaTeX - prvo predavanje
LaTeX - prvo predavanjeLaTeX - prvo predavanje
LaTeX - prvo predavanjeGoran Igaly
 
Računarski praktikum 1 - Konstruktor kopiranja
Računarski praktikum 1 - Konstruktor kopiranjaRačunarski praktikum 1 - Konstruktor kopiranja
Računarski praktikum 1 - Konstruktor kopiranjaGoran Igaly
 
Powerpoint za nastavnike 2016
Powerpoint za nastavnike 2016Powerpoint za nastavnike 2016
Powerpoint za nastavnike 2016Goran Igaly
 
Rp1 predavanja 01
Rp1 predavanja 01Rp1 predavanja 01
Rp1 predavanja 01Goran Igaly
 
Internet - korisnički dio
Internet - korisnički dioInternet - korisnički dio
Internet - korisnički dioGoran Igaly
 
Proračunske tablice - 3. dio
Proračunske tablice - 3. dioProračunske tablice - 3. dio
Proračunske tablice - 3. dioGoran Igaly
 
Predavanje9 - Excel 2. dio
Predavanje9 - Excel 2. dioPredavanje9 - Excel 2. dio
Predavanje9 - Excel 2. dioGoran Igaly
 
Računarski praktikum 1 - Excel 1
Računarski praktikum 1 - Excel 1Računarski praktikum 1 - Excel 1
Računarski praktikum 1 - Excel 1Goran Igaly
 
Obrada teksta - 2. dio
Obrada teksta - 2. dioObrada teksta - 2. dio
Obrada teksta - 2. dioGoran Igaly
 
Osnovni koncepti informatičke tehnologije
Osnovni koncepti informatičke tehnologijeOsnovni koncepti informatičke tehnologije
Osnovni koncepti informatičke tehnologijeGoran Igaly
 
Hrvatsko nazivlje u nastavi matematike
Hrvatsko nazivlje u nastavi matematikeHrvatsko nazivlje u nastavi matematike
Hrvatsko nazivlje u nastavi matematikeGoran Igaly
 
Hrvatsko nazivlje u matematici temeljni pojmovi - završno predavanje
Hrvatsko nazivlje u matematici   temeljni pojmovi - završno predavanjeHrvatsko nazivlje u matematici   temeljni pojmovi - završno predavanje
Hrvatsko nazivlje u matematici temeljni pojmovi - završno predavanjeGoran Igaly
 
Matematički postupci u automatskom prevođenju
Matematički postupci u automatskom prevođenjuMatematički postupci u automatskom prevođenju
Matematički postupci u automatskom prevođenjuGoran Igaly
 
Matematički postupci u automatskom prevođenju
Matematički postupci u automatskom prevođenjuMatematički postupci u automatskom prevođenju
Matematički postupci u automatskom prevođenjuGoran Igaly
 
Matematički postupci u automatskom prevođenju
Matematički postupci u automatskom prevođenjuMatematički postupci u automatskom prevođenju
Matematički postupci u automatskom prevođenjuGoran Igaly
 

More from Goran Igaly (20)

Predavanja3. word 1
Predavanja3.   word 1Predavanja3.   word 1
Predavanja3. word 1
 
Mogućnosti korištenja mikrokontrolera u obrazovanju i raniji slični projekti
Mogućnosti korištenja mikrokontrolera u obrazovanju i raniji slični projektiMogućnosti korištenja mikrokontrolera u obrazovanju i raniji slični projekti
Mogućnosti korištenja mikrokontrolera u obrazovanju i raniji slični projekti
 
Nacionalni parkovi
Nacionalni parkoviNacionalni parkovi
Nacionalni parkovi
 
Nova prezentacija
Nova prezentacijaNova prezentacija
Nova prezentacija
 
LaTeX - prvo predavanje
LaTeX - prvo predavanjeLaTeX - prvo predavanje
LaTeX - prvo predavanje
 
Računarski praktikum 1 - Konstruktor kopiranja
Računarski praktikum 1 - Konstruktor kopiranjaRačunarski praktikum 1 - Konstruktor kopiranja
Računarski praktikum 1 - Konstruktor kopiranja
 
Powerpoint za nastavnike 2016
Powerpoint za nastavnike 2016Powerpoint za nastavnike 2016
Powerpoint za nastavnike 2016
 
Rp1 predavanja 01
Rp1 predavanja 01Rp1 predavanja 01
Rp1 predavanja 01
 
Internet - korisnički dio
Internet - korisnički dioInternet - korisnički dio
Internet - korisnički dio
 
Proračunske tablice - 3. dio
Proračunske tablice - 3. dioProračunske tablice - 3. dio
Proračunske tablice - 3. dio
 
Predavanje9 - Excel 2. dio
Predavanje9 - Excel 2. dioPredavanje9 - Excel 2. dio
Predavanje9 - Excel 2. dio
 
Računarski praktikum 1 - Excel 1
Računarski praktikum 1 - Excel 1Računarski praktikum 1 - Excel 1
Računarski praktikum 1 - Excel 1
 
Obrada teksta - 2. dio
Obrada teksta - 2. dioObrada teksta - 2. dio
Obrada teksta - 2. dio
 
Osnovni koncepti informatičke tehnologije
Osnovni koncepti informatičke tehnologijeOsnovni koncepti informatičke tehnologije
Osnovni koncepti informatičke tehnologije
 
Zadaća 2 1
Zadaća 2 1Zadaća 2 1
Zadaća 2 1
 
Hrvatsko nazivlje u nastavi matematike
Hrvatsko nazivlje u nastavi matematikeHrvatsko nazivlje u nastavi matematike
Hrvatsko nazivlje u nastavi matematike
 
Hrvatsko nazivlje u matematici temeljni pojmovi - završno predavanje
Hrvatsko nazivlje u matematici   temeljni pojmovi - završno predavanjeHrvatsko nazivlje u matematici   temeljni pojmovi - završno predavanje
Hrvatsko nazivlje u matematici temeljni pojmovi - završno predavanje
 
Matematički postupci u automatskom prevođenju
Matematički postupci u automatskom prevođenjuMatematički postupci u automatskom prevođenju
Matematički postupci u automatskom prevođenju
 
Matematički postupci u automatskom prevođenju
Matematički postupci u automatskom prevođenjuMatematički postupci u automatskom prevođenju
Matematički postupci u automatskom prevođenju
 
Matematički postupci u automatskom prevođenju
Matematički postupci u automatskom prevođenjuMatematički postupci u automatskom prevođenju
Matematički postupci u automatskom prevođenju
 

Računarski praktikum 1 - Objektno orijentirani dizajn (9. predavanje)

  • 1. Računarski praktikum 1 Predavanja Goran Igaly Sveučilište u Zagrebu PMF, Matematički odsjek 9. predavanje (objektno orijentirani dizajn)
  • 2. 2 Niz koraka u oblikovanju komponente  1) Određivanje koncepata/klasa i temeljnih relacija među njima  2) Profinjenje klasa određivanjem skupa operacija nad njima  Klasificiranje operacija - posebno konstruktora, destruktora, konstruktora kopiranja  3) Profinjenje klasa određivanjem zavisnosti  mogućnosti parametrizacije, nasljeđivanja, korištenje zavisnosti  4) Definiranje sučelja  Odvajanje funkcija u javne i privatne operacije  Određivanje točnog tipa operacija na klasama
  • 3. 3 1) Određivanje klasa  Razgovor s budućim korisnicima sustava ili (nezadovoljnim) korisnicima postojećeg sustava  imenice >> klase i objekti  glagoli >> operacije na objektima  Odmak od postojećeg sustava  Generalizacija i specijalizacija (primjer kružnice i elipse)  Analiza slučajeva (primjera) korištenja (use case) (Iniciranje poziva = podigni slušalicu; nazovi broj; telefon na drugoj strani zvoni; osoba na drugoj strani podiže slušalicu)  Nakon nekoliko primjera korištenja, oblikuje se sustav i testira kako funkcionira u ostalim slučajevima (iterativni proces) – pokrivanje u prvoj fazi cca 80% glavnih situacija  Neka bitna svojstva sustava (pouzdanost, performanse, provjera ispravnosti) ne mogu se reprezentirati klasama
  • 4. 4 2) Određivanje operacija  Kako se objekt neke klase konstruira, uništava, kopira  Koji je minimalni skup operacija potreban za funkcioniranje klase  Određivanje standardnih naziva i funkcionalnosti u svim klasama unutar komponente  Operacije:  stvaranje i uništavanje  nadzor (ne mijenjaju stanje objekta)  promjena (mijenjaju stanje objekta)  konverzija (generiranje objekta drugog tipa ovisno o stanju originalnog objekta)  iterator (pristup i korištenje niza sadržanih objekata)
  • 5. 5 3) Određivanje zavisnosti  Zavisnosti  parametrizacija  nasljeđivanje  korištenje relacija  Ne pretjerivati u korištenju zavisnosti
  • 6. 6 4) Određivanje sučelja  Privatne funkcije obično ne treba razmatrati u fazi dizajna. Ove funkcije bi trebale biti izvedive neovisno o implementaciji  Javne funkcije – specificiraju se točni tipovi argumenata
  • 7. 7 Korištenje modela  Uvijek kada je moguće, dizajn i programiranje trebaju biti temeljeni na prethodnom radu  Odabir modela pogodnog za prilagodbu  Korištenje obrazaca u programiranju – korištenje konkretnih primjera za ilustraciju općeg principa  Svaki uspješan veliki sustav nastao je redizajnom nekog manjeg upogonjenog sustava
  • 8. 8 Eksperimentiranje, analiza, testiranje  Prototip – umanjena verzija sustava ili nekog njegovog dijela  Kako testirati, što testirati? Situacije koje mogu imati kobne posljedice i situacije koje se često javljaju. Testiranju se obično ne posvećuje dovoljno pažnje
  • 9. 9 Održavanje softvera  Redizajn, ponovna implementacija – tj. ciklus razvoja programa  Obično vezano za istu razvojnu skupinu (dokumentacija bolje pomaže razumijevanju detalja nego u razumijevanju ključnih ideja i principa)
  • 10. 10 Učinkovitost  Čist i jednostavan dizajn  Optimizacija u kasnijoj fazi, na temelju mjerenja performansi i određivanja uskih grla  U fazi dizajna treba nastojati izbjegavati rješenja koja će se kasnije teško optimizirati
  • 11. 11 I još...  Upravljanje softverskim projektom  Ponovna upotrebljivost koda  Mogućnost primjene rješenja na veće probleme  Izvedivost s postojećim ljudskim resursima  Hibridni dizajn
  • 12. 12 Uloga klasa – razine apstrakcije  Kuća:  atomi  molekule  cigle i druga građa  podovi, zidovi, stropovi  sobe  odgovarajuća razina detalja i odgovarajuća razina apstrakcije
  • 13. 13 Hijerarhija klasa  usmjereni aciklički graf klasa Vozilo Policijski_automobil KamionAutomobil Vozilo_hitne_pomoci Vatrogasno_vozilo Interventno_vozilo
  • 14. 14 Implementacije hijerarhije klasa  class Vozilo { /* ... */ };  class Interventno_vozilo { /* ... */ };  class Automobil : public Vozilo { /* ... */ };  class Kamion : public Vozilo { /* ... */ };  class Policijski_automobil : public Automobil, protected Interventno_vozilo { /* ... */ };  class Vozilo_hitne_pomoci : public Automobil, protected Interventno_vozilo { /* ... */ };  class Vatrogasno_vozilo: public Kamion, protected Interventno_vozilo { /* ... */ };
  • 15. 15 protected, private, public  private – ime se može koristiti samo u članskim funkcijama  protected – ime se može koristiti samo u članskim funkcijama klase u kojoj je deklarirano, te u klasama izvedenim iz te klase  public – ime se može koristiti u svim funkcijama
  • 16. 16 Izvedene klase  Savladavanje kompleksnosti hijerarhijskim uređajem  organiziranje povezanih koncepata u strukturu stabla, pri čemu je najopćenitiji koncept u korijenu stabla  U C++ izvedene klase (derived class) predstavljaju takve strukture
  • 17. Izvedene klase (2)  Programer zadaje određeni broj temeljnih klasa, pri čemu svaka od njih ima vlastiti skup izvedenih klasa. Za definiranje operacija na najopćenitijoj verziji koncepta (temeljnoj klasi) se često koriste virtualne funkcije.  Kada je potrebno, ove operacije se mogu prilagoditi za pojedine specijalne slučajeve (izvedene klase) 17