Elektrotehnicki fakultet, Beograd  Laslo Kraus

Programski jezik C++ sa rešenim zadacima

Ispravke uz deveto izdanje


Mesto Pogrešno Ispravno
strana: 30
red: ↓17
(s12) (s21)
strana: 34
red: ↑17
Upućivač na nepromenljivu lvredost u6 inicijalizovan je izrazom (promenljivomkdvrednošću). Upućivač na nepromenljivu lvredost u7 inicijalizovan je izrazom (promenljivom dvrednošću).
strana: 36
red: ↑16
povecaj(x);      // x je još uvek 1.
povecaj(x+1);    // U redu: može i dvrednost.
povecaj(x);      // GREŠKA: ne može lvrednost.
povecaj(x+1);    // U redu: dvrednost može.
strana: 36
red: ↑12
Ako je argument lvrednost (x), napravi se njegova kopija kao privremeni podatak (dvrednost) i taj se dostavlja funkciji. Po povratku iz funkcije povecaj, vrednost promenljive x je neizmenjena. Argument ne može biti lvrednost (x).
strana: 50
red: ↓2
Mogu da se inicijalizuju samo pojedinačni podaci (prosti tipovi, nizovi, strukture i unije). Mogu da se inicijalizuju samo pojedinačni podaci (prosti tipovi, strukture i unije).
strana: 50
red: ↑21
Nula (NULL) kao operand Nula (nullptr) kao operand
strana: 50
red: ↑12
kada taj podatak više ne postoji. kada taj podatak više nije potreban.
strana: 61
red: ↑2
using Alfa::a; // Da se koristi Alfa::a.
int w = a;
Naredbom using naznačeno je da pod identifikatorom a treba podrazumevati identifikator a iz prostora imena Alfa. Posle toga identifikator a može da se koristi neposredno. Bez obzira na to što postoji i identifikator a iz prostora imena Beta.
« Treba izbaciti. »
strana: 69
red: ↓15
RAND_MAX+1.) * 10) RAND_MAX+1.) * 10))
strana: 79
red: ↓19
Kao što se iz primera 3.5 vidi, Kao što se iz primera 3.7 vidi,
strana: 79
red: ↑9
iz primera 3.5 (▤76) iz primera 3.7 (▤79)
strana: 80
red: ↑16
iz primera 3.5 (▤76) iz primera 3.7 (▤79)
strana: 81
red: ↓10
U ut = 1; U u5 = 1;
strana: 82
red: ↓1
iz primera 3.5 (▤76) iz primera 3.7 (▤79)
strana: 82
red: ↓16
Tada tela polja novog objekta Tada polja novog objekta
strana: 85
red: ↑3
(=deleted) (=delete)
strana: 89
red: ↑18
Ako se memorija dodeljuje nizu objekata pomoću operatora new, inicijalizator ne sme da se navodi i koristiće se podrazumevani konstruktor za inicijalizaciju elemenata niza. Naravno, opet po rastućim vrednostima indeksa elemenata. Greška je ako ne postoji dostupan podrazumevani konstruktor. « Treba izbaciti. »
strana: 96
red: ↑7
constexpr int a, c[3];
constexpr double d;
constexpr int V::a, V::c[3];
constexpr double V::b;
strana: 97
red: ↓4
ne može da se navede modifikator const ne mogu da se navedu modifikatori const, volatile, & i &&
strana: 102
red: ↓1
// pf je pokazivac na metode void(int). // pm je pokazivac na metode void(int).
strana: 102
red: ↓5
na funkcije f. na funkcije g.
strana: 135
red: ↑11
kopirajućeg konstruktora konvertujućeg konstruktora
strana: 136
red: ↑12
kopirajući konstruktor konvertujući konstruktor
strana: 139
red: ↑11
kopira svoja polja kopira sva polja
strana: 140
red: ↓17
Implicitna premeštajuća dodela vrednosti automatski se briše (=deleted) ako u klasi postoji eksplicitno definisan kopirajući konstruktor, destruktor ili operatorska funkcija za dodelu vrednosti. Implicitna premeštajuća dodela vrednosti automatski se briše (=delete) ako u klasi postoji eksplicitno definisan kopirajući konstruktor, destruktor ili operatorska funkcija za kopirajuću dodelu vrednosti.
strana: 148
red: ↓19
sve dok se ne naiđe na klasu čija operatorska funkcija vraća pokazivač na neku klasu. Tada se, konačno, pristupa članu te klase, a koji je naveden u prvobitnom izrazu. sve dok se ne naiđe na klasu čija operatorska funkcija vraća pokazivač na objekat neke klase. Tada se, konačno, pristupa članu tog objekta, a koji je naveden u prvobitnom izrazu.
strana: 154
red: ↓11
i!=j, ++i i!=j; ++i
strana: 154
red: ↑18
odnosno neku prepoznatljivu vrednost koju će da vraća i metoda begin kada dođe do kraja zbirke; odnosno neku prepoznatljivu vrednost kojom se označava dolazak do kraja zbirke;
strana: 160
red: ↑12
Ako se lambda funkcija nalazi u blokovskom dosegu, mogu da se koriste samo automatski podaci i parametri okružujuće funkcije (ne i globalni podaci ili članovi okružujuće klase). « Treba izbaciti. »
strana: 160
red: ↑8
, pod uslovom da je ona jedina naredba u telu lambda funkcije. Inače, tip je void « Treba izbaciti. »
strana: 161
red: ↓13
Povratna vrednost je tipa void samo ako na osnovu return naredbi ne može da se izvede jednoznačan zaključak. Greška je ako na osnovu return naredbi ne može da se izvede jednoznačan zaključak.
strana: 163
red: ↓10
Ne može da pristupa automatskim podacima (b) iz okružujuće funkcije (fun), niti da koristi pokazivač this za pristup nestatčkim članovima (polju d i metodi m1) okružujuće metode (fun). Ne može da pristupa automatskim podacima (d) iz okružujuće funkcije (fun), niti da koristi pokazivač this za pristup nestatčkim članovima (polju b i metodi m1) okružujuće klase (Klasa).
strana: 164
red: ↑12
novi okružujući objekti … Takođe, okružujući objekti … ugrađene (implicit) novi omotački objekti … Takođe, omotački objekti … ugrađene (inline)
strana: 165
red: ↓15
u omotačkoj klasi lambda funkcije postoji još jedna metoda: u omotačkoj klasi lambda funkcije koja ne zahvata ništa postoji još jedna metoda:
strana: 177
red: ↓9
predstavlja 3x2-2x+5 predstavlja 3x2-2x+5
strana: 196
red: ↓2
To znači da privatni članovi osnovne klase nikako ne mogu da se uvoze, a zaštićeni mogu samo u izvedenim klasama. To znači da privatni članovi osnovne klase nikako ne mogu da se uvoze.
strana: 196
red: ↑22
Klasa B je javno izvedena Klasa B je privatno izvedena
strana: 196
red: ↓9
Klasa C je javno izvedena iz klase B. Sva su njena polja nasleđena od klase B. Ne može da koristi polje f, iako je u klasi A ono javno, ali u klasi B je postalo privatno. Klasa C je javno izvedena iz klase B. Ne može da koristi polje f, iako je u klasi A ono javno, ali u klasi B je postalo privatno.
strana: 199
red: ↑19
Zato može da se navede i više konstruktora osnovnih klasa. Zato kod ne-delegirajućih konstruktora može da se navede i više konstruktora osnovnih klasa.
strana: 207
red: ↓11
metoda je konačna (final method) i ne mogu iz nje dalje da se izvode klase. Drugim rečima, ne može biti natklasa drugim klasama. metoda je konačna (final method).
strana: 207
red: ↑10
Osn::m1() A::m1()
strana: 207
red: ↑5
Osn::Vm1() B::vm1()
strana: 211
red: ↑16

strana: 212
red: ↓13
U definiciji izvedene klase iza imena može da se stavlja modifikator explicit. …

Napomena: Postoje prevodioci za jezik C++ koji ne prihvataju modifikator explicit za klase i modifikator new za metode.
« Navedeno pravilo nije ušao u Standard – ceo tekst treba izbaciti. »
strana: 222
red: ↑11 i ↑2
for (tek=prvi; for (Elem* tek=prvi;
strana: 246 do 249 LIter L_iter
strana: 253
red: ↓14
tip fun ( parametri ) try {
  // telo funkcije
catch ( tip ident ) telocatch ( tip ident ) telo
tip fun ( parametri ) try {
  // telo funkcije
} catch ( tip ident ) telocatch ( tip ident ) telo
strana: 254
red: ↑8
U telu konstruktora klase A U telu konstruktora klase B
strana: 259
red: ↑14
Metodu brisi pozivaju premeštajući konstruktor, destruktor i premeštajuća metoda operator=. Metodu brisi pozivaju destruktor, kao i kopirajuća i premeštajuća metoda operator=.
strana: 260
red: ↑21 i ↑2
6.2 6.3
strana: 261
red: ↑16
6.2 6.3
strana: 261
red: ↑16
« Nedostaje rezultat 6.1. » « Rezultat 6.1 »
strana: 262
red: ↓22
poruka == "" poruka != ""
strana: 264
red: ↓7
ima implicitnu definiciju (*default). ima implicitnu definiciju (=default).
strana: 272
red: ↓10
pošto se funkcija min nalazi pošto se funkcija main nalazi
strana: 281
red: ↓23
mora biti generička klasa mora biti klasa
strana: 284
red: ↓17
class A {
public:
  int* niz; int n;
public:
class A {
  int* niz; int n;
public:

strana: 290
red: ↑9
svog paketskog parametra f. svog paketskog parametra t.
strana: 293
red: ↓9
funkcija >> za upisivanje podataka funkcija << za upisivanje podataka
strana: 294
red: ↓12
iz programa 6.13 iz programa 7.2
strana: 300
red: ↑5
Ugnežđene klase mogu da budu generičke klase. Sama spoljašnja klasa može da bude obična (negenerička) ili generička klasa. Ugnežđene generičke klase mogu da se koriste na isti način kao i obične (negeneričke) ugnežđene klase. To znači da izvan spoljašnje klase mora operatorom za razrešenje dosega da se naznači pripadnost spoljašnjoj klasi. U slučaju generičke spoljašnje klase, naravno, oznaka klase mora da sadrži i parametre šablona. Ugnežđene klase mogu da budu generičke klase. Sama okružujuća klasa može da bude obična (negenerička) ili generička klasa. Ugnežđene generičke klase mogu da se koriste na isti način kao i obične (negeneričke) ugnežđene klase. To znači da izvan okružujuće klase mora operatorom za razrešenje dosega da se naznači pripadnost okružujućoj klasi. U slučaju generičke okružujuće klase, naravno, oznaka klase mora da sadrži i parametre šablona.
strana: 304
red: ↓21
std::rel ops; std::rel_ops;
strana: 305
red: ↓23
C B
strana: 305
red: ↑9
make_pair(const A&&, const B&&); make_pair(A&&, B&&);
strana: 306
red: ↓15
f() operator()
strana: 310
red: ↓3
Iteratori s više mogućnosti uvek mogu da se koriste za radnje nad zbirkama za koje su dovoljni iteratori s manje mogućnosti. Iteratori s manje mogućnosti uvek mogu da se koriste za radnje nad zbirkama za koje su dozvoljeni iteratori s više mogućnosti.
strana: 311
red: ↓8 i ↓18
videti §8.2.3, ▤318 videti §8.2.3, ▤315
strana: 315
red: ↑2
iz primera 7.4 iz primera 7.11
strana: 321
red: ↑10
explicit queue(const Z& z);
explicit queue(const Z&& z=Z());
explicit priority_queue(const U& u, const Z& z=Z());
explicit priority_queue(const U& u=U(), const Z&& z=Z());
explicit stack(const Z& z);
explicit stack(const Z&& z=Z());
explicit queue(const Z& z);
explicit queue(Z&& z=Z());
explicit priority_queue(const U& u, const Z& z);
explicit priority_queue(const U& u=U(), Z&& z=Z());
explicit stack(const Z& z);
explicit stack(Z&& z=Z());
strana: 326
red: ↑2
const string&, const char*, const string&, string&&, const char*,
strana: 327
red: ↓7
const string&, const char*, const string&, string&&, const char*,
strana: 327
red: ↑16
unsigned size_t
strana: 327
red: ↑3
-1 npos
strana: 328
red: ↓1 i ↓12
unsigned size_t
strana: 330
red: ↓1 i ↓16
unsigned size_t
strana: 331
red: ↑13
#2 i #3 #1 i #2
strana: 333
red: ↑17 i ↑12
Vel N
strana: 348
red: ↓2
vrsta, kopija i pisi vrsta, pripada i pisi
strana: 352
red: ↓22
Figura(crt) Figura(move(crt))
strana: 352
red: ↑18
Figura::operator=(crt); Figura::operator=(move(crt));
strana: 376
red: ↓7
fstream::open(ime, ios::out); close();
if (!is_open())             throw Greska(Greska::OTV);
fstream::open(ime, ios::in | ios::out | ios::binary);

fstream::open(ime, ios::out);
if (!is_open())             throw Greska(Greska::OTV);
close();
fstream::open(ime, ios::in | ios::out | ios::binary);

         
Autor: Laslo Kraus
E-pošta: kraus@etf.rs

Copyright © 2021, Laslo Kraus
Poslednja revizija: 14.7.2021.