Click here to load reader

US - Objektno orijentisano programiranje - C++.pdf

  • View
    228

  • Download
    0

Embed Size (px)

Text of US - Objektno orijentisano programiranje - C++.pdf

http://slidepdf.com/reader/full/us-objektno-orijentisano-programiranje-cpdf 1/214
http://slidepdf.com/reader/full/us-objektno-orijentisano-programiranje-cpdf 2/214
http://slidepdf.com/reader/full/us-objektno-orijentisano-programiranje-cpdf 3/214
http://slidepdf.com/reader/full/us-objektno-orijentisano-programiranje-cpdf 4/214
Sadraj
Glava 1. Uvod u jezik C++   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.1. Istorijat jezika C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.2. Standardizacija jezika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.3. Objektno orijentisane osobine jezika C++ . . . . . . . . . . . . . . . . . . . . . . . 11 1.4. Unošenje, prevodenje i izvršavanje C++ programa . . . . . . . . . . . . . . . . . . 13
1.4.1. Integrisana razvojna okruenja za programiranje (IDE) . . . . . . . . . . 15 1.4.2. Prevodenje i interpretiranje . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.4.3. Konzolni i graficki programi . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.5. Prvi C++ program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Glava 2. Tipovi podataka i operatori   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.1. Identifikatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.2. Specijalni znakovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3. Ugradeni tipovi podataka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.3.1. Promenljive i konstante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.3.2. Celobrojni podaci (int) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.3.3. Znakovni podaci (char) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.3.4. Brojevi u pokretnom zarezu (float, double) . . . . . . . . . . . . . . . . . . 30 2.3.5. Logicki tip (bool) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.4. Operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.4.1. Operator dodele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.4.2. Aritmeticki operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.4.3. Relacioni i logicki operatori . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.4.4. Definisanje sinonima za tipove podataka: typedef . . . . . . . . . . . . . 35 2.4.5. Operator sizeof . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 2.4.6. Operator nabrajanja (,) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.4.7. Osnovne operacije ulaza i izlaza . . . . . . . . . . . . . . . . . . . . . . . . 37 2.4.8. Prioritet i asocijativnost operatora . . . . . . . . . . . . . . . . . . . . . . . 37
2.5. Konverzija tipova (cast) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.6. Simbolicke konstante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Glava 3. Naredbe za kontrolu toka programa  . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.1. Blokovi naredbi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
http://slidepdf.com/reader/full/us-objektno-orijentisano-programiranje-cpdf 5/214
4   Sadraj 
3.2. Naredba if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.2.1. Ugnjedene naredbe if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.2.2. If else if lestvica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.2.3. Uslovni izraz (operator ? :) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 543.3. Naredba switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.4. Petlja for . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.5. Petlja while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.6. Petlja do-while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 3.7. Naredbe break i continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 3.8. Ugnjedene petlje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3.9. Naredba bezuslovnog skoka (goto) . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 Pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
Glava 4. Nizovi, stringovi i pokazivaci   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.1. Jednodimenzionalni nizovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.2. Višedimenzionalni nizovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 4.3. Stringovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.3.1. Ucitavanje stringa sa tastature . . . . . . . . . . . . . . . . . . . . . . . . . 71 4.3.2. Funkcije C++ biblioteke za stringove . . . . . . . . . . . . . . . . . . . . . 72
4.4. Inicijalizacija nizova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.4.1. Inicijalizacija nizova bez dimenzija . . . . . . . . . . . . . . . . . . . . . . 74
4.5. Nizovi stringova . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 4.6. Pokazivaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.6.1. Pokazivac NULL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 774.6.2. Operacije sa pokazivacima . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 4.6.3. Osnovni tip pokazivaca . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 4.6.4. Dodela vrednosti promenljivoj preko pokazivaca . . . . . . . . . . . . . . 80 4.6.5. Pokazivacka aritmetika . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 4.6.6. Pokazivaci i nizovi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.7. Dinamicka alokacija memorije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 Pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Glava 5. Funkcije   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.1. Argumenti funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 925.2. Povratak iz funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 5.2.1. Funkcija exit() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.3. Doseg promenljivih (scope) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.3.1. Lokalni doseg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.3.2. Globalni doseg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 5.3.3. Staticke promenljive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5.4. Imenici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 5.5. Nizovi i pokazivaci kao argumenti funkcija . . . . . . . . . . . . . . . . . . . . . . . 102 5.6. Reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
5.6.1. Reference u funkcijama . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 5.6.2. Samostalne reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 5.6.3. Pokazivaci i reference . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 5.6.4. Reference kao povratni tip funkcija . . . . . . . . . . . . . . . . . . . . . . 107
8/20/2019 US - Objektno orijentisano programiranje - C++.pdf
http://slidepdf.com/reader/full/us-objektno-orijentisano-programiranje-cpdf 6/214
5.6.5. Korišcenje modifikatora const u funkcijama . . . . . . . . . . . . . . . . . 108 5.7. Prototipovi funkcija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 5.8. Preklapanje funkcija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
5.8.1. Podrazumevani argumenti funkcija . . . . . . . . . . . . . . . . . . . . . . 1115.9. Rekurzivne funkcije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 Pitanja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Glava 6. Klase i objekti   . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
6.1. Kako i zašto je nastalo objektno orijentisano programiranje? . . . . . . . . . . . . 119 6.2. Pojam klase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 6.3. Kontrola pristupa clanovima klase . . . . . .…