Programski jezik C++ sa rešenim zadacima (C++14) 10. izdanje
Ova knjiga predstavlja udžbenik za programski jezik C++ namenjen širokom krugu čitalaca.
Knjigu mogu da koriste i ljudi s relativno malo programerskog iskustva, ali je vrlo korisna i za profesionalne programere kojima jezik C++ nije osnovni programski jezik u profesionalnoj delatnosti. Jezik C++ je izrastao iz jezika C. Ova knjiga je nastavak autorove knjige Programski jezik C sa rešenim zadacima.
Podrazumeva se da čitalac zna osnovne elemente jezika
C i da ima izvesno iskustvo u programiranju na jeziku C.
Programski jezik C++ izložen je u obimu koji može da zadovoljava i naprednije neprofesionalne
programere. Od sadržaja prateće standardne biblioteke klasa i funkcija prikazani su samo važniji delovi. Jedini način da se nauči neki programski jezik jeste da se pišu programi na njemu.
Ova knjiga je u potpunosti podređena tom osnovnom načelu.
Uvodno poglavlje 1 sadrži informacije korisne pre svega za početnike: osnovne pojmove objektno-orijentisanog programiranja, komande za obradu programa na jeziku C++ na računarima u tekstualnom i grafičkom okruženju i kratak pregled jezika C kao podsetnik na ono što bi trebalo da je poznato odranije.
SADRŽAJ
Predgovor, v
Sadržaj, ix
1 Uvod, 1
1.1 O programskom jeziku C++,
1 1.2 Uvod u objektno-orijentisano programiranje, 3
1.2.1 Apstrakcija, 4
1.2.2 Učaurivanje, 4
1.2.3 Nasleđivanje, 5
1.2.4 Polimorfizam, 6
1.2.5 Ponovno korišćenje koda, 6
1.3 Obrada programa na jeziku C++, 7
1.3.1 Obrada programa u tekstualnom režimu, 7
1.3.2 Obrada programa u grafičkom režimu, 8
1.4 Programski jezik C, 9
1.4.1 Elementi jezika, 9
1.4.2 Tipovi podataka, 11
1.4.3 Operatori i izrazi, 15
1.4.4 Naredbe, 17
1.4.5 Funkcije, 19
1.4.6 Struktura programa, 21
1.4.7 Pretprocesor, 23
1.4.8 Bibliotečke funkcije, 23
2 Proširenja jezika C, 25
2.1 Ključne reči, 25
2.2 Tipovi podataka, 26
2.2.1 Brojčani podaci, 26
2.2.2 Logički podaci, 26
2.2.3 Znakovne konstante, 27
2.2.4 Imenovane konstante, 27
2.2.5 Definisanje podataka, 27
2.2.6 Identifikatori tipova, 28
2.2.7 Pridruživanje identifikatora tipovima, 28
2.2.8 Inicijalizatorske liste, 29
2.2.9 Nabrajanja, 30
2.2.10 Pokazivači, 32
2.2.11 Upućivači, 32
2.2.11.1 Vrste izraza i upućivača, 33
2.2.11.2 Upućivači na lvrednosti, 33
2.2.11.3 Upućivači na dvrednosti ∆, 35
2.2.11.4 Upućivači i funkcije, 35
2.2.12 Izostavljene mogućnosti iz jezika C, 38
2.2.13 Niske, 38
2.2.14 Strukture i unije, 39
2.2.14.1 Uvek promenljiva polja u strukturama ∆, 39
2.2.14.2 Ugnežđene i bezimene strukture i unije ∆, 39
2.3 Operatori, 40
2.3.1 Ulaz i izlaz podataka, 40
2.3.1.1 Operatori za čitanje i pisanje s konverzijom, 42
2.3.1.2 Manipulatori za podešavanje parametara konverzije, 43
2.3.1.3 Čitanje i pisanje znakova bez konverzije, 44
2.3.2 Vrednost izraza kao lvrednost, 45
2.3.3 Konstantni izrazi, 46
2.3.4 Konverzija tipa, 48
2.3.5 Dinamička dodela memorije, 50
2.4 Naredbe, 52
2.4.1 Definisanje podataka u složenim naredbama, 52
2.4.2 Obilazak elemenata nizova: for, 53
2.5 Funkcije, 54
2.5.1 Tip vrednosti funkcije, 54
2.5.2 Podrazumevani argumenti funkcija, 55
2.5.3 Preopterećivanje imena funkcija, 56
2.5.4 Brisanje funkcija, 57
2.5.5 Dohvatanje delova složenih podataka, 58
2.5.6 Povezivanje s drugim jezicima ∆, 59
2.6 Prostori imena, 61
2.5.8 Glavna funkcija, 61 Prostori imena, 61
2.6.1 Definisanje prostora imena, 61
2.6.2 Upotreba identifikatora u prostoru imena, 62
2.6.3 Bezimeni prostor imena ∆, 64
2.6.4 Ugnežđivanje prostora imena ∆, 65
2.6.5 Prostor imena std, 67
2.5.7 Atributi ∆, 60
2.5.7.1 Funkcije koje se ne vraćaju ∆, 60
2.5.7.2 Zastareli elementi programa ∆, 61
2.7 Zadaci, 68
2.7.1 Metoda podele za uređivanje, 68 3 Klase, 73
3 Klase, 73
3.1 Definisanje i deklarisanje klasa, 74
3.2 Objekti klasnih tipova, 75
3.3 Metode klasa, 76
3.3.1 Implicitno definisane metode, 79
3.4 Konstruktori, 80
3.4.1 Definisanje klasa s konstruktorima, 80
3.4.2 Pozivanje konstruktora, 81
3.4.3 Definisanje konstruktora, 83
3.4.4 Konstruktori posebne namene, 84
3.4.4.1 Podrazumevani konstruktor, 84
3.4.4.2 Kopirajući konstruktor, 86
3.4.4.3 Premeštajući konstruktor ∆, 88
3.4.4.4 Konvertujući konstruktor, 90
3.4.5 Tok izvršavanja konstruktora, 92
3.4.6 Inicijalizacija nizova objekata, 93
3.4.7 Konstruktori za proste tipove podataka, 93
3.5 Destruktori, 94
3.6 Konstante klasnih tipova, 97
3.7 Statički članovi klasa, 99
3.8 Prijateljske funkcije klasa, 103
3.9 Pokazivači na članove klasa ∆, 105
3.10 Ugnežđene klase, 106
3.11 Lokalne klase, 108
3.12 Strukture i unije, 109
3.13 Dijagrami klasa, 110
3.14 Zadaci, 113
3.14.1 Obrada tačaka u ravni, 113
3.14.2 Obrada uređenih skupova, 117
3.14.3 Operacije nad jedinstvenim stekom, 122
3.14.4 Obrada krugova u ravni, 125
4 Preopterećivanje operatora, 133
4.1 Operatorske funkcije, 134
4.2 Preopterećivanje operatora ++ i −−, 136
4.3 Operatori za ulaz i izlaz podataka (>>, <<), 137
4.4 Preopterećivanje operatora (tip), 138
4.4.1 Automatska konverzija tipa, 139
4.5 Preopterećivanje operatora =, 142
4.5.1 Inicijalizacija i dodela vrednosti, 146
4.6 Preopterećivanje operatora [], 149
4.7 Preopterećivanje operatora (), 151
4.8 Preopterećivanje operatora -> ∆, 153
4.9 Preopterećivanje operatora new i delete ∆, 155
4.10 Nabrajanja i preopterećivanje operatora ∆, 156
4.11 Zbirke podataka, 158
4.11.1 Smeštanje objekata u zbirke podataka, 159
4.11.2 Obilazak elemenata zbirki: for ∆, 165
4.12 Zadaci, 170
4.12.1 Obrada vremenskih intervala, 170
4.12.2 Obrada polinoma, 175
4.12.3 Obrada redova, 183
5 Izvedene klase, 191
5.1 Definisanje izvedenih klasa, 192
5.2 Dijagrami klasa za izvedene klase, 195
5.3 Upotreba članova izvedenih klasa, 196
5.4 Virtuelne osnovne klase ∆, 202
5.5 Stvaranje i uništavanje primeraka izvedenih klasa, 203
5.6 Konverzija tipa između osnovnih i izvedenih klasa, 205
5.7 Virtuelne metode, 207
5.8 Apstraktne klase, 212
5.9 Polimorfno kopiranje objekata, 213
5.10 Dinamička konverzija tipa podataka ∆, 217
5.11 Dinamičko određivanje tipa podataka ∆, 218
5.12 Zadaci, 220
5.12.1 Obrada geometrijskih figura u ravni, 220
5.12.2 Obrada zbirki geometrijskih figura u ravni ∆, 230
6 Izuzeci, 255
6.1 Rukovanje izuzecima, 256
6.2 Bacanje izuzetaka, 257
6.3 Hvatanje izuzetaka, 260
6.4 Funkcijska naredba try ∆, 261
6.5 Neuhvaćeni i neočekivani izuzeci ∆, 263
6.6 Standardni izuzeci ∆, 264
6.7 Zadaci, 264
6.7.1 Obrada vektora zadatih opsega indeksa, 264
6.7.2 Izračunavanje određenog integrala, 269
7 Generičke funkcije i klase, 283
7.1 Definisanje šablona, 284
7.2 Generisanje generičkih funkcija i klasa, 286
7.3 Podrazumevani argumenti šablona, 288
7.4 Funkcijske klase kao parametri šablona, 289
7.5 Inicijalizatorske liste, 290
7.6 Specijalizacija ∆, 292
7.6.1 Specijalizacija generičkih klasa ∆, 293
7.6.2 Specijalizacija generičkih funkcija ∆, 294
7.7 Generičke metode i ugnežđene generičke klase ∆, 295
7.8 Paketi parametara ∆, 297
7.9 Zadaci, 301
7.9.1 Fuzija nizova objekata, 301
7.9.2 Obrada stekova objekata, 304
7.9.3 Uređivanje nizova podataka ∆, 307
8 Lambda izrazi ∆, 311
8.1 Definisanje lambda izraza ∆, 311
8.2 Tip vrednosti lambda izraza ∆, 313
8.3 Pristup okruženju lambda izraza ∆, 314
8.4 Metode omotačke klase lambda izraza ∆, 318
8.5 Lambda izrazi i generičke metode i klase ∆, 320
8.6 Zadaci ∆, 321
8.6.1 Obrada generičkih nizova podataka ∆, 321
9 Standardna biblioteka ∆, 327
9.1 Usluge ∆, 327
9.1.1 Relacioni operatori ∆, 328
9.1.2 Zamena dva podatka ∆, 328
9.1.3 Parovi podataka ∆, 329
9.1.4 Funkcijske klase i objekti ∆, 330
9.1.5 Kompleksni brojevi (complex) ∆, 332
9.2 Zbirke podataka ∆, 332
9.2.1 Iteratori ∆, 333
9.2.2 Zajedničke metode i globalne funkcije zbirki ∆, 336
9.2.3 V ektori (vector) ∆, 339
9.2.4 Redovi s dva kraja (deque) ∆, 342
9.2.5 Nizovi (array) ∆, 342
9.2.6 Liste (list) ∆, 343
9.2.7 Jednosmerne liste (forward_list) ∆, 344
9.2.8 Specijalne zbirke (queue, priority_queue i stack) ∆, 345
9.2.9 Preslikavanja (map i multimap) ∆, 346
9.2.10 Skupovi (set i multiset) ∆, 349
9.2.11 Tekstovi (string) ∆, 349
9.2.12 Nizovi bitova (vector i bitset) ∆, 354
9.3 Algoritmi ∆, 356
9.3.1 Izbor namanjeg i najvećeg ∆, 356
9.3.2 Obrada pojedinačnih elemenata zbirki ∆, 357
9.3.3 Pretraživanje zbirki ∆, 360
9.3.4 Obrada zbirki ∆, 361
9.3.5 Obrada uređenih sekvencijalnih zbirki ∆, 364
9.4 Zadaci
9.4.1 Obrada obojenih geometrijskih figura u ravni ∆, 366
10 Ulaz i izlaz, 385
10.1 Tokovi za datoteke, 386
10.1.1 Stvaranje tokova za datoteke, 386
10.1.2 Otvaranje i zatvaranje datoteka, 387
10.2 Tokovi u memoriji, 388
10.2.1 Stvaranje tokova u memoriji, 388
10.2.2 Pristup sadržaju tokova u memoriji, 388
10.3 Rad s tekstualnim tokovima, 389
10.3.1 Prenos bez konverzije, 389
10.3.2 Prenos s konverzijom , 390
10.4 Rad s binarnim tokovima, 392
10.5 Pozicioniranje unutar toka (direktan pristup), 393
10.6 Signalizacija grešaka, 393
10.7 Klase za ulaz i izlaz, 394
10.8 Zadaci, 396
Literatura, 407
Indeks, 409
Detaljni podaci o knjiziNaslov: Programski jezik C++ sa rešenim zadacima (C++14) 10. izdanje
Izdavač: Akademska misao
Strana: 436 (cb)
Povez: meki
Pismo: latinica
Format: B5
Godina izdanja: 2016
ISBN: 978-86-7466-582-4