kugla

DEMISTIFICIRANI C++ (3. prošireno izdanje)

Provjerite zašto "pravi programeri" koriste C++

Što je novo u trećem izdanju

U trećem izdanju ispravljene su pogreške uočene u prethodnim izdanjima; neke od njih se vuku još od prvog izdanja knjige. To se prvenstveno odnosi na primjere kôda. Par poglavlja je doživjelo značajnije promjene, u prvom redu poglavlja o funkcijama, klasama, nasljeđivanju i o predlošcima.

Prema zadnjim informacijama, krajem 2011. godine treba biti službeno objavljena nova verzija Standarda jezika C++, poznata pod oznakom Standard C++0x. Ona donosi niz novina koje trebaju olakšati pisanje kvalitetnog i robusnog kôda, prvenstveno vezano za korištenje predložaka. Stoga su u knjigu uklopljene i neke od novosti koje novi Standard donosi. Većina tih novosti je tek spomenuta, s kraćim ilustrativnim primjerima. Izuzetak su konstruktori pomaka (engl. move constructor) i lambda izrazi koji su zbog niza detalja iziskivali zasebne odjeljke. Sve informacije vezane uz novu verziju Standarda su uočljivo označene, tako da ih čitatelj može preskočiti. Kako mnogi prevoditelji već sada djelomično podržavaju značajke novoga Standarda, zainteresirani čitateljica ili čitatelj ipak će moći neke od tih primjera i isprobati. Pritom treba biti svjestan da će proći još neko vrijeme i nakon službene objave Standarda kada će prevoditelji doista podržavati Standard u najvećem dijelu.

Napomenimo da Standard C++0x zadržava kompatibilnost prema prethodnoj verziji Standarda (tzv. C++98, odnosno C++03) što znači da će knjiga (uključujući i prethodna izdanja) biti i dalje aktualna još dugi niz godina.

Što je bilo novo u drugom izdanju

U vrijeme pisanja prvog izdanja knjige, ANSI/ISO standard jezika C++ bio je pred usvajanjem; knjiga je izašla iz tiska u travnju 1997., a standard je bio usvojen u rujnu 1998. godine. Dostupna literatura kao ni raspoloživi prevoditelji (compileri) nisu pokrivali sve novine koje su bile navedene u Nacrtu Standarda iz travnja 1995. godine, posljednjem javno dostupnom dokumentu ANSI/ISO komiteta za standardizaciju jezika C++. Zbog toga u prvom izdanju knjige nisu bili obuhvaćeni neki detalji koji su uključeni ili izmijenjeni u standardu relativno kasno. Štoviše, mnogi prevoditelji koji su izbačeni na tržište nakon objave standarda neke od tih detalja još uvijek ne podržavaju korektno ili uopće.

U drugom izdanju knjige ispravljene su sve uočene pogreške te su primjeri u potpunosti usklađeni sa standardom. To se prvenstveno odnosi na nazivlje standardnih biblioteka i na koncept imenika (namespaces), koji danas postaje nužnost u razvoju složenih aplikacija. Organizacija nekih poglavlja je promijenjena te su dodani detaljni opisi i primjeri korištenja standardnih razreda string, complex i valarray.

Dodano je zasebno poglavlje o standardnoj biblioteci predložaka (STL, Standard Template Library) u kojem su detaljno opisani svi osnovni tipovi spremnika: vektor, lista, dvostrani red (deque), skup (set), višekratni skup (multiset), mapa (map), višekratna mapa (multimap), stog (stack), red (queue), prioritetni red (priority queue) te skup bitova (bitset), objašnjeni su iteratori, algoritmi i funkcijski objekti.

Prilog je proširen detaljnijim opisima mnogih standardnih funkcija koje nisu bile obuhvaćene u prvom izdanju, opisima češće korištenih generičkih algoritama iz standardne biblioteke predložaka, kao i rudimentarnim uputama za korištenje nekih češće korištenih prevoditelja.

Također, objašnjena je ključna riječ export, jedina ključna riječ jezika C++ koja nije spomenuta u prvom izdanju jednostavno zato jer je nije bilo u nacrtu standarda.

Sve ove dopune i izmjene rezultirale su uvećanjem obima knjige za oko 180 stranica.