× Aktuálně z oboru

SHIELD Experience Upgrade 7 – méně hledání a více zábavy [ clanek/2018052902-shield-experience-upgrade-7-mene-hledani-a-vice-zabavy/ ]
Celá zprávička [ clanek/2018052902-shield-experience-upgrade-7-mene-hledani-a-vice-zabavy/ ]

C++ - 0. lekce

[ http://programujte.com/profil/1483-lukas-chury/ ]Google [ https://plus.google.com/101446994797551111026?rel=author ]       [ http://programujte.com/profil/118-zdenek-lehocky/ ]Google [ ?rel=author ]       13. 4. 2005       92 286×
  • Předmluva
  • Doporučená literatura
  • Nedoporučovaná literatura
  • Ostatní literatura
  • Literatura o standardní šabl. knihovně STL

Předmluva

Učit se budeme dle standardu ISO/IEC 14882:1998.

Pokud něčemu nebudete rozumět, zeptejte ve Fóru [ http://programujte.com/index.php?akce=diskuze&kam=diskuze&sekce=9-c-c++ ], kde vám někdo (i já) určitě odpoví, jak nejrychleji to bude možné. Pište i do komentářů k lekcím či do Diskuze, jak se vám lekce líbí, a také lekce hodnoťte – pomůže mi to při tvorbě nových lekcí.

Doporučená literatura

  1. M. Virius: Programování v C++ [ http://tjn.fjfi.cvut.cz/~virius/publ-list.html#CPP ]
    Toto skriptum pokrývá programovací jazyky C a C++ v potřebném rozsahu.
  2. D. Louis, P. Mejzlík, M. Virius: Jazyky C a C++ podle normy ANSI/ISO [ http://tjn.fjfi.cvut.cz/~virius/publ-list.html#ANSI ] Grada Publishing, Praha 1999, 644 stran.
    V této knize najdete podrobný přehled standardních knihoven C a C++. V tomto směru dobře doplňuje předchozí skriptum.
  3. M. Virius: Od C k C++ [ http://tjn.fjfi.cvut.cz/~virius/publ-list.html#ODCKCPP ] Kopp, České Budějovice 2000. 230 stran.
    Tato může posloužit posluchačům, kteří již znají jazyk C.
  4. B. Stroustrup: The C++ Programming Language. 3rd edition. Addison-Wesley 1997. ISBN 0-201-88954-4. 910 stran. Anglicky.
    Učebnice C++. Ne každému styl výkladu v této knize vyhovuje, mně ano a já ji považuji za velice dobrou. Najdete tu nejen výklad jazyka C++, ale i výklad a příklady na použití standardních knihoven.
    Pozor: Tato kniha existuje ve 3 různých vydáních, které popisují tři různé verze jazyka C++.
    První vydání hovoří o C++ z r. 1986 (Cfront 1), které nemá s dnešní podobou jazyka mnoho společného. Pokud na toto vydání někde narazíte, raději je tam ponechte, dnes už není v podstatě k ničemu (a k přednášce se naprosto nehodí).
    Druhé vydání z r. 1991 hovoří o C++ z doby těsně před počátkem standardizace. To znamená, že se v některých drobnostech odlišuje od standardu a především vůbec nehovoří o standardních knihovnách. Toto vydání vyšlo v českém překladu v nakladatelství Ben r. 1997 pod názvem C++ Programovací jazyk. Pokud tuto knihu máte, nezahazujte ji, není špatná, i když je trochu zastaralá. (Na české poměry je ovšem dost drahá - stojí 699,- Kč.)
    Třetí vydání vyšlo zhruba v době, kdy se objevil český překlad druhého vydání. V knize najdeme výklad o jazycích a knihovnách, příklady programových konstrukcí i použití knihoven. Já sám vidím jedinou nevýhodu této knihy - její cenu (cca 2500,- Kč).
    Obsahově prakticky stejné je i vydání označené Special Edition, které vedle tvrdých desek a opravy několika tiskových chyb obsahuje navíc i dodatky D a E, věnované použití třídy locale a bezpečnosti při používání výjimek. Tyto dodatky jsou k dispozici na internetu na adrese http://www.research.att.com/~bs/ [ http://www.research.att.com/~bs/ ].
  5. Margaret A. Ellis, B. Stroustrup: The Annotated C++ Reference Manual. Addison-Wesley 1994. ISBN 0-201-51459-1. 460 stran. Anglicky.
    Není to učebnice, je to referenční příručka s podrobným výkladem, předpokládá znalost jazyka C++, ale najdete tu i výklad některých důležitých detailů, zdůvodnění apod. Velice dobré čtení pro pokročilejší programátory. Dnes je tato kniha bohužel již zastaralá, neboť vznikla na počátku 90. let a proto neobsahuje některé věci, které přinesl standard, nicméně i tak může pomoci v mnoha ohledech. (Ostatně stala se podkladem pro návrh standardu. Nehovoří ovšem o knihovnách.)
  6. M. Virius: Pasti a propasti jazyka C++. [ http://tjn.fjfi.cvut.cz/~virius/publ-list.html#PASTI ] Grada Publishing, Praha 1997. ISBN 80-7169-607-2. 246 stran.
    Tato kniha se zabývá běžnými programátorskými chybami, které vznikají z nepochopení významu některých konstrukcí jazyka C++, díky podobnosti s některými jinými jazyky apod. Dobré doplňkové čtení, pokud již znáte alespoň základy jazyka.
    V současné době je v tisku druhé, doplňěné a rozšířené vydání, které se zabývá i šablonami, standardní šablonovou knihovnou a objektovým návrhem.
  7. Bruce Eckel: Myslíme v jazyku C++. Grada Publishing, Praha 2000. ISBN 80-247-9009-2. 552 stran. (První díl)
    Velice dobře napsaná učebnice C++. Výklad začíná od základních pojmů objektového programování a při seznamování s nimi používá jazyk UML. Pak následuje rychlokurs jazyka C pro účely programování v C++. Následně se věnuje jazyku C++ (používání objektů, funkcí, šablon, jmenných prostorů). Vše je vysvětlováno na velmi jednoduchých příkladech. Neobsahuje podrobnosti o šablonách, výjimky, RTTI a standardní šablonovou knihovnu - to má být spolu s tvorbou robustních aplikací ve druhém dílu (který ovšem dosud česky nevyšel).
    Výraznou vadou této knihy je kvalita překladu. Například nadpisy "Převod konstruktoru", resp. "Převod operátorů" vlastně znamenají "Převod pomocí konstruktoru", resp. "Převod pomocí operátorů", což svědčí o tom, že to překládal někdo, kdo netušil, o čem mluví. Najdeme tu i slohové krásy typu "na jiných strojích může docházet k jiným výsledkům".
    Poznámka: Jde o překlad druhého anglického vydání knihy Thinking in C++, Prentice Hall 2000, ISBN 0-13-979809-9. První anglické vydání předpokládalo znalost jazyka C (neobsahovalo kapitolu "Jazyk C v C++").
  8. Herb Sutter: Exceptional C++. Addison-Wesley 2000. ISBN 0-201-61562-2. 208 stran. Anglicky.
    Zaměřením se podobá knize výše zmíněné Pasti a propasti C++, je však o úroveň dál (a je také novější, takže obsahuje zkušenosti se standardem ISO 14882). Zabývá se problémy, které vznikají při používání výjimek, chybami při práci se standardní knihovnou, s alokací paměti, rozebírá vybrané návrhové vzory pro vytváření tříd a jejich hierarchií, ukazuje souvislost Koenigova vyhledávání s tzv. principem rozhraní (interface principle) a chyby, které z nedodržení tohoto principu mohou vzniknout, atd. Obsahuje 47 vybraných problémů, které ukazují chybný kód, nespolehlivý kód, neefektivní kód atd. Např. hned první problém začíná slovy: Následující ukázka kódu obsahuje nejméně 4 chyby v práci s iterátory. Dokážete je najít? Pak následuje jejich řešení a výklad.
    Skvělé doplňkové čtení, pokud dobře znáte alespoň základy jazyka C++ včetně standardní knihovny a chcete v C++ programovat opravdu profesionálně.
    Poznamenejme, že podkladem pro tuto a následující knihu se staly autorovy články z rubriky "Guru of the weak" z časopisu The C++ User Journal.
  9. Herb Sutter: More Exceptional C++. Addison-Wesley 2002. ISBN 0-201-70434-X. 279 stran. Anglicky.
    Navazuje na předchozí knihu; obsahuje dalších 40 problémů a jejich řešení. Zabývá se generickým programováním, standardní knihovnou, optimalizací, problémy s bezpečností při používání výjimek, objektovým návrhem, správou prostředků, ale také makry, volnými funkcemi atd. Velice dobře napsaná kniha, i když ve srovnání s předchozí upovídanější.
    Stejně jako předchozí kniha představuje skvělé doplňkové čtení.
  10. Andrew Koenig: C Traps and Pitfalls. Addison-Wesley 1989. ISBN 0-201-18928-8. 146 stran. Anglicky.
    Čtivě napsaná kniha o častých i méně častých programátorských chybách v jazyce C (nikoli C++). Rozebírá situace, kdy se program sice přeloží, ale dělá něco jiného, než programátor očekává; vedle chyb, jako je záměna operátorů = a == nebo překročení mezí pole, rozebírá i problémy s přenositelností programu na jiné počítače nebo s funkcemi ze standardní knihovny. Obsahuje cvičení a odpovědi na ně.
    Skvělé doplňkové čtení; i když by se podle data vydání mohlo zdát, že jde o počítačovou prehistorii, na její platnosti se nic nezměnilo.
    Poznamenejme, že tato kniha mne inspirovala k napsání podobné knihy o C++ - zmíněných Pastí a propastí C++ - a to nejen pokud jde o zaměření, ale i pokud jde o název.
  11. John J. Barton, Lee R. Nackman: Scientific and Engineering C++ An Introduction with Advanced Techniques ans Examples. Addison-Wesley 1994. ISBN 0-201-53393-6. 665 stran. Anglicky.
    Dobře napsaný úvod do jazyka, který předpokládá znalost buď Fortranu nebo C. Na příkladech, zaměřených především na věděcké a technické výpočty, ukazuje použití tříd, dědičnosti, polymorfizmu, šablon atd.
    Nevýhodou je, že tato kniha vznikla v době, kdy ještě nebyla k dispozici standardní šablonová knihovna, a proto řeší problémy, které jsou v této knihovně vyřešeny. Přesto je to i dnes velice dobrá kniha. (Nedávno vyšla v novém vydání.)

Nedoporučená literatura

  1. Martin Beran: Učebnice Borland C++. Technická literatura BEN, Praha 1995. ISBN neuvedeno. 438 stran.
    Kniha obsahuje řadu neuvěřitelně hrubých chyb, příklady, které nelze přeložit, příklady, které dělají něco jiného, než mají, atd. NEPOUŽÍVAT V ŽÁDNÉM PŘÍPADĚ!
  2. Jan Pokorný: Rukověť uživatele Borland C++ AF. Plus, Praha 1992. ISBN 80-85297-39-6. 464 stran.
    Zastaralé -- popisuje Borland C++ 3.1, takže výklad jazyka C++ končí u šablon, neobsahuje výjimky, prostory jmen atd. Řada věcí je vysvětlena tak, že to čtenář nepochopí (to se týká mj. i šablon), řada podstatných věcí chybí.
  3. Vladimír Rudolf: ABC programátora v C++. Kopp, České Budějovice 1990, 1999. 112 stran.
    Kniha obsahuje pouze základní informace o objektovém programování a o přetěžování operátorů, nic víc. Navíc ve výkladu o přetěžování operátorů je řada věcí špatně a řada informací chybí (mnohé velmi podstatné). Také ve výkladu objektů několik důležitých věcí chybí a jsou tam chyby. Šablony, výjimky, RTTI, prostory jmen a šablonová knihovna tu vůbec nejsou, výklad o proudech vychází ze zkušenosti s překladači, které se odchylovaly od tehdejšího neoficiálního standardu (Specifikace AT&T 2.0). Závěr: NEPOUŽÍVAT.
  4. Dirk Louis: C und C++ -- Programierung und Referenz. Markt & Technik, Haar bei München. ISBN 3-8272-5066-8. Německy. 588 stran.
    Kniha obsahuje referenční přehled C a C++ a především knihoven, ovšem bohužel s řadou chyb, občas dosti obludných. NEPOUŽÍVAT! (Překladem a podstatnou úpravou této knihy vznikla kniha Jazyky C a C++ podle normy ANSI/ISO, ze které se mi doufám podařilo chyby odstranit.)
  5. Dalibor Kačmář: Jazyk C -- učebnice pro střední školy. Computer Press 2000. ISBN 80-7226-295-5. 185 stran.
    Je to učebnice jazyka C, nikoli C++ -- to ovšem není důvod, proč ji nedoporučuji. Pokud jde o obsah, drží se osvědčeného schématu -- začne jednoduchým příkladem, který ukáže základní možnosti jazyka, a pok postupně probere všechny důležité nástroje. Problém je, že výklad je uspořádán poměrně velmi chaoticky, obsahuje řadu odkazů dopředu, řada věcí je vysvětlována v místech, kde to čtenář neočekává, některé konstrukce použité v příkladech nejsou vysvětleny a není tam ani odkaz na místo, kde budou probírány. Vůbec tu chybí např. informace o tom, že příkaz break lze použít k ukončení cyklu nebo že ukazatele lze porovnávat pomocí relačních operátorů. O parametrech funkce main se dočteme v kapitole o vstupech a výstupech, o inicializaci struktur a unií je stručná zmínka v kapitolce o polích. Vedle toho obsahuje tato kniha i věcné chyby; nejde věci opravdu závažné, snad až na tvrzení, že rozdílem dvou ukazatelů je počet bajtů ležících mezi adresami, na které ukazují, ale v učebnici -- navíc označené "pro střední školy" -- nemají chyby co dělat. Také počet gramatických chyb, především špatně umístěných čátek ve větách, je zarážející (2 -- 3 na stránce).
    Nedoporučuji tuto knihu používat, neboť i když pomineme chyby, i zkušený čtenář z této knihy získá dojem, že jazyk C je nesmírně složitý -- a co teprve studenti, kteří s programováním začínají.

Ostatní literatura o jazycích C a C++

Knihy v tomto oddílu jsou převážně kvalitní, nedoporučuji je ale jako literaturu k přednášce z jazyka C++. Důvodem může např. být, že jde o knihu věnovanou pouze jazyku C, nebo proto, že hovoří více o nějakém vývojovém prostředí než o C++. Mnohé z knih zde uvedených představují dobré doplňkové čtení.

  1. Kernighan, B. W. -- Ritchie, D. M.: The C Programming Language. Second Edition. Prentice Hall 1988. ISBN 0-13-110362-8. Anglicky.
    Klasická a přitom velice dobře napsaná učebnice jazyka C. Obsahuje výklad jazyka C podle standardu ANSI (a tedy také ISO). V posledních kapitolách je referenční přehled jazyka a přehled standardní knihovny jazyka C. Lze jen doporučit.
    Ovšem pozor: Tato kniha existuje ve dvou vydáních. První vydání vyšlo v r. 1978 a popisovalo starší verzi jazyka, pro kterou se vžila označení "Jazyk C podle Kernighana a Ritchieho", "K&R" ap. Tato archaická verze jazyka C se sice občas ještě někde vidí, ale... od standardu se v několika bodech odlišuje, neobsahuje některé konstrukce běžně ve standardu používané ap. Takže starší vydání nedoporučuji používat, pokud opravdu nemusíte pracovat s překladačem, který tuto verzi implementuje. (Kniha sama je napsána dobře a pokud se starou verzí jazyka C pracujete, bude vám velice užitečná.)
  2. Kernighan, B. W. - Ritchie, D. M.: Programovací jazyk C. SNTL - Alfa, Bratislava 1988. 248 stran. Slovensky.
    Slovenský překlad prvního vydání (z r. 1978) slavné učebnice jazyka C. Platí o ní vše, co bylo řečeno o prvním [ http://tjn.fjfi.cvut.cz/~virius/liter/litCpp.htm#KR ] anglickém vydání - tedy používat, pouze pokud pracujete s překladačem, který implementuje odpovídající verzi jazyka C.
  3. Stroustrup, B.: The Design and Evolution of C++. AT&T 1994. ISBN 0-201-54330-3. Anglicky.
    Kniha věnovaná historii jayzka C++, logice jeho návrhu ap. Najdeme to mimo jiné i zdůvodnění, proč tento jazyk obsahuje či neobsahuje určité rysy (např. proč chybí automatická správa paměti -- garbage collector), diskuzi o některých temných zákoutích jazyka ap. Velice zajímavé doplňkové čtení pro ty, které zajímají další souvislosti. Předpokládá ovšem solidní znalost C++.
  4. Herout, P.: Učebnice jazyka C, III upravené vydání. Kopp, České Budějovice 1994. ISBN 80-85828-21-9. 270 stran. (VI přepracované vydání. Kopp, České Budějovice 2004.)
    Dobře napsaná učebnice jazyka C podle ISO 9899-1990 v češtině. Vysvětlí všechny základní konstrukce a seznámí s běžnými knihovními funkcemi.
    Čtvrté vydání obsahuje i kapitolu o novinkách, které přinesl standard ISO 9899-1999 a které se zvolna začínají prosazovat v nových verzích překladačů.
  5. Herout, P.: Učebnice jazyka C, 2. díl. Kopp, České Budějovice 1995. ISBN 80-85828-50-2. 236 stran.
    Vzdor názvu to není učebnice jazyka C. V první části najdete podrobný výklad o vstupních a výstupních operacích v C, popis některých užitečných funkcí a maker ze standardní knihovny, výklad o ladění v jazyce C. Druhá část obsahuje informace o Borland C++ a jeho využití pro programování v DOSu (programování přerušení, práce s porty, ovládání EMS a XMS a další speciální informace. Užitečné doplňkové čtení.
  6. Herout, P.: Borland C++, návod k použití. Kopp, České Budějovice 1994. ISBN 80-85828-19-7. 185 stran.
    Není to učebnice C++, je to kniha o prostředí Borland C++ 3.1 a o práci s ním.
  7. Mark Andews: Programujeme v jazyce Visual C++. Computer Press, Praha 1997. ISBN 80-85896-91-5. 385 stran.
    Na obálce je slovo "Visual" skryto uvnitř "C", takže snadno unikne pozornosti a láká čtenáře jako učebnice C++. Nicméně je to především kniha o vývojovém prostředí Microsoft Visual C++ 4.x; kromě toho v ní najdeme velice stručný rychlokurs základů C++ -- učebnici C++ ovšem nemůže nahradit -- a základy práce s knihovnou MFC. (Jde o překlad knihy Learn Visual C++ Now! vydané nakladatelstvím Microsoft Press r. 1996).
  8. Racek, S.: Objektově orientované programování v C++. Kopp, České Budějovice 1994. ISBN 80-85828-20-0. 205 stran.
    Ke čtení je třeba znát jazyk C. Autorovi jde především o základní principy OOP, jazyk C++ zůstává poněkud stranou (a je neustále srovnáván s jazykem Eiffel). Navíc výklad C++ v této knize vychází ze zkušeností s Borland C++ 3.1, takže pochopitelně neprobírá výjimky, prostory jmen, dynamickou identifikaci typů nebo standardní šablonovou knihovnu. Vedle základů teorie OOP tu lze najít zajímavý rozbor problematiky perzistence objektů.
  9. Racek, S. -- Kvoch, M.: Třídy a objekty v C++. Kopp, České Budějovice 1998. ISBN 80-7232-017-3. 215 stran.
    Podstatně přepracovaná a aktualizovaná verze knihy S. Racka Objektově orientované programování v C++ (viz předchozí text). Ke čtení je opět třeba znát jazyk C. Autoři vysvětlí základní principy OOP a pak ukazují jejich aplikaci v C++ -- projdou objektové typy, přetěžování operátorů, šablony, výjimky, stručně hovoří i o objektových knihovnách. Z této knihy se lze základy C++ naučit.
  10. Nenadál, K. -- Václavíková, D.: Borland C++. Grada Publishing, Praha 1992. 225 stran.
    Nepříliš kvalitně přepsané manuály k Borland C++ 2.0. To znamená, že se zde mj. ještě nehovoří ani o šablonách, natož pak o výjimkách nebo prostorech jmen. Dnes prakticky nemá smysl používat.
  11. Šaloun, P.: Programovací jazyk C pro zelenáče. Neokortex, Praha, 2000. ISBN 80-86330-02-X. 205 stran.
    Kniha sice pokrývá většinu témat, která by měl programátor v jazyce C znát, ale nepatří mezi podařené. Výklad je poměrně málo přehledný (i díky jazyku), autor často bez vysvětlení předbíhá a používá neprobrané konstrukce. Kniha neobsahuje sice příliš mnoho chyb, ale najdou se, a to i poměrně vážné. Asi největší výhrada, kterou proti ní mám, se týká výkladu o znakových řetězcích a polích vůbec: Autor zaměňuje pojmy "řetězec" a "ukazatel na řetězec", a to občas i v jedné větě -- a to je v textu pro začátečníky vyloženě nešťastné, neboť z nepochopení vztahu polí a ukazatelů pocházejí ty nejhrubší chyby při práci s pamětí.
    Celkově působí dojmem knihy spáchané v horečném chvatu. Nemohu ji v žádném případě doporučit.
    Poznámka ke druhému vydání (léto 2003, ISBN 80-86330-08-7): Pro druhé vydání byla kniha přepracována, autor odstranil nejhrubší chyby. Celkový dojem neobratnosti výkladu ovšem trvá.
  12. Kruglinski, D. -- Shepherd, G. -- Wingo, S.: Programujeme v Microsoft Visual C++. Computer Press, Praha, 2000. ISBN 80-7226-362-5.
    Přepracované vydání úspěšné knihy D. Kruglinského Mistrovství ve Visual C++ ( Mastering Visual C++, Microsoft Press), upravené pro Visual C++ 6.0.
    Ke čtení potřebujete znát C++. Naučíte se zde používat knihovnu MFC (základy, architekturu dokument-pohled), používat prvky ActiveX, pracovat s automatizací, vytvářet komponenty COM a (včetně použití knihovny ATL), pracovat s databázemi pomocí ODBC, DAO a OLE DB a programovat pro internet (speciálně pro Microsoft IIS). I přes značný rozsah nejde v žádném z témat do přílišné hloubky.
    První dojem: užitečná kniha, i když poměrně drahá (doporučená cena 975 Kč, 1404 Sk); tomu ale odpovídá i rozsah (1000 stran).
  13. S. Prata: Mistrovství v C++. Computer Press, Praha 2001. ISBN 80-7226-339-0
    Vysvětluje podrobně jednotlivé konstrukce, ukazuje jejich význam a použití. Postupuje od základů k pokročlým konstrukcím, používá od počátku i standardní knihovnu. Na první pohled také vypadá dobře, i když je na můj vkus trochu rozvláčná (cca 1000 stran).
  14. Stanley B. Lippman: Essential C++. Addison-Wesley 1999. ISBN 0-201-48518-4. 270 stran. Anglicky.
    Dobrá učebnice základů jazyka C++, která hned od počátku -- od programu Hello, world -- používá standardní knihovnu. Zajímavé je uspočádání výkladu podle přístupů k programování: Po probrání základů se autor věnuje procedurálnímu programování, pak využití generických algoritmů a kontejnerů ze standardní knihovny (což označuje za generické programování), následuje programování s objekty, objektové programování, programování se šablonami a práce s výjimkami.
  15. Andrei Alexandrescu: Modern C++ Design. Addison-Wesley 2001. ISBN 0-201-70431-5. 321 stran. Anglicky.
    Šablony byly původně navrženy proto, aby usnadnily vytváření opakujícího se podobného kódu, který se liší jen datovými typy nebo hodnotou konstant známých už v době překladu. Ovšem šablony v dnešní podobě otevřely obrovské a netušené možnosti, které se dnes shrnují pod označení "generické metaprogramování". Lze je s trochou nadsázky označit za programování, při kterém vše podstatné proběhne v době překladu a za běhu už jen vystoupí výsledky.
    Autor v této knize ukazje, jak takové konstrukce vytvářet. V úvodu např. najdeme analogii makra assert(), ovšem vyhodnocovaného v době překladu. Jako další ukázky najdeme seznamy typů, zobezněné funktory atd. V mnoha případech jde o "generické" implementace klasických návrhových vzorů.
    Tato kniha nabízí vyšší školu programování pomocí šablon. Je to zajímavé čtení, i když dosti náročné.
    V současné době je v tisku český překlad pod názvem "Moderní programování v C++".
  16. F. Kašpárek a kol.: Co v manuálu nenajdete. [ http://tjn.fjfi.cvut.cz/~virius/publ-list.html#Nenajdete ] Unis Publishing, Brno 1993. ISBN neuvedeno. 762 stran.
    Kniha o nedokumentovaných vlastnostech překladače Borland C++ 3.1 a starších a některých (v době vydání) méně známých vlastnostech C++. Popis jazyka C++ odpovídá variantě použité v tomto překladači, tzn. dost významně se odchyluje od standardu ISO 14882.
    Má smysl používat pouze v případě, pokud pracujete s uvedeným překladačem.
  17. D. Matoušek: C++Builder -- vývojové prostředí. Ben -- Technická literatura, Praha 2000. ISBN 80-86056-70-8. 630 stran.
  18. D. Matoušek: C++Builder -- vývojové prostředí. 2. díl. Ben -- Technická literatura, Praha 2001. ISBN 80-7300-003-2. 520 stran.
    Velmi podrobná kniha o C++Builderu verzí 4 a 5 s řadou příkladů. První díl probírá vývojové prostředí, běžně používané komponenty, práci s INI soubory, tvorbu nápovědy, tvorbu vlastních komponent, komponenty pro práci s DDE a OLE. Autor také vysvětluje použití výjimek.
    Ve druhém dílu najdeme informace o pokročilejších rysech vývojového prostředí. Najdeme tu informace o rpáci s metasoubory, rolování, způsobu zpracování zopráv, práci s prostředky (resources) včetně textu atd. V této knize najdeme i informace o odpovídajících funkcích z Windows API. Poslední kapitoly seznamují se základy knihovny OpenGL, se sériovým portem ap.
    Velmi užitečná kniha, i když nepokrývá některé témata (ale nikde není řečeno, že druhý díl je poslední).
  19. J. Bergin, M. Stehlik, J. Roberts, R. Pattis: Karel++. J. Wiley and Sons, 1997. ISBN 0-471-13809-6. Anglicky.
    Robot Karel, ovšem v objektovém provedení založeném na jazyce C++. (Robot Karel je dnes už klasická pomůcka pro výuku základů programování, zavedená R. Pattisem v knize Karel the Robot, 1981.)
  20. A. Koenig, Barbara E. Moo: Accelerated C++. Addison-Wesley, 2000. ISBN 0-201-70353-X. Anglicky.
    Kvalitní úvod do jazyka C++.
    1. S. Meyers: Effective C++. Addison-Wesley, 1993, 2001. Anglicky.
    2. S. Meyers: More Effective C++. Addison-Wesley, 1996. ISBN 0-201-63371-X. Anglicky.
    3. S. Meyers: Effective STL. Addison-Wesley 2001. ISBN 0-201-74962-9. Anglicky.
    Všechny tři knihy obsahují řadu kráktých kapitol, které rozebírají některé důležité a často špatně chápané stránky jazyka C++. První z nich vznikla na počátku 90. let a v 50 kapitolkách se zabývá tématy jako jsou ukazatele, používání konstruktorů a destruktorů objektových typů, přetěžování operátorů atd. Druhá vznikla v polovině 90. let a v 35 kapitolkách se zabývá chybami objektového návrhu, problémy okolo používání výjimek, efektivitou atd. Poslední kniha vznikla už po přijetí mezinárodního standardu IS0 14882 a v 50 kapitolkách rozebírá problémy a nedorozumění kolem správného používání kontejnerových tříd a iterátorů ve standardní šablonové knihovně.
    Velice užitečné knihy. I když první dvě vznikly ještě před přijetém standardu, neztratily nic na platnosti. Jediná nevýhoda: Čím novější kniha, tím upovídanější. Přesto je doporučuji.
  21. V. Kadlec: Učíme se programovat v jazyce C. Computer Press, Praha 2002. ISBN 80-7226-715-9.
    Docela dobře napsaný úvod do jazyka C. Jediné mé výhrady se týkají skutečnosti, že autor hovoří o normě ANSI jazyka C, která de facto neexistuje (ANSI distribuuje mezinárodní standard ISO 9899). Autor také vychází ze standardu z r. 1990 a možná i starších, takže např. nehovoří o typu long long a dalších věcech, které tato norma zavedla.
  22. R. Neruda, T. Holan: C++ Builder v příkladech. Ben -- Technická literatura, Praha 2002. ISBN 80-7300-042-3.
    Řada řešených příkladů v C++Builderu. Kniha pokrývá tvorbu GUI, počítačovou grafiku s pomocí C++Builderu a databázové aplikace. Každý příklad obsahuje vždy zadání, řešení a poznámky a komentáře. Předpokládá znalost C++ a ve výkladu o C++Builderu (tedy o knihovně VCL) nejde do hloubky, jen naznačuje, ale to obvykle snaprosto stačí. Skvělý doplněk jakéhokoli úvodního nebo i lehce pokročilého kurzu C++Builderu, velmi dobré i pro samostatné čtení.
  23. D. Vandervoorde, N. M. Josuttis: C++ Templates. The Complete Guide.Addison-Wesley 2003. ISBN 0-201-73484-2. 530 stran, cena 55 $.
    Kniha předpokládá znalost jazyka C++ (kromě šablon, neboť ty vysvětluje od základů). Zachází ovšem do hloubky, s níž se v běžných učebnicích nesetkáme -- pokrývá nejen základní použití šablon v C++, ale i základy šablonového metaprogramování a někteté další pokročilejší aplikace. Vynikající doplňkové čtení, i když má smysl spíše pro tvůrce knihoven než pro běžné programátory.
  24. R. Chalupa: 1001 tipů a triků pro Visual C++. Computer Press 2003. ISBN 80-7226-842-2. 434 stran, cena 397 Kč, 595 Sk.
    kniha obsahuje 1003 (nikoli 1001) krátkých návodů a ukázek, jak řešit různé problémy v jazyce C++ v prostředí Windows. Vychází z Visual C++ .NET, hovoří ovšem převážně o knihovně MFC a o Windows API. Najdme tu vedle sebe poučení o vlastnostech celočíselných typů, návod, jak napsat spořič obrazovky nebo třeba jak pracovat s bitovou mapou a mnoho dalšího. Užitečná publikace, i když mj. neobsahuje rejstřík (a to mi připadá jako docela závažná chyba).

Literatura o standardní šablonové knihovně (STL)

Na českém trhu (pokud vím) v současné době chybí kniha, která by se systematicky zabývala standardní šablonovou knihovnou jazyka C++. Jediná publikace, která stojí za zmínku, je kniha Jazyky C a C++ podle normy ANSI/ISO [ http://tjn.fjfi.cvut.cz/~virius/publ-list.html#ANSI ], která obsahuje referenční přehled této knihovny. To ovšem nestačí pro pochopení způsobu práce s touto knihovnou. Proto zde uvádím pouze zahraniční publikace.

  1. P. J. Plauger, A. A. Stepanov, Meng Lee, D. R. Musser: The C++ Standard Template Library.Prentince Hall 2001. ISBN 0-13-437633-1. Anglicky.
    Popis hlavičkových souborů obsahujících standardní knihovnu jazyka C++, dále popis tříd a dalších konstrukcí v nich, základní informace o jejich účelu a použití. Může sloužit především jako reference, jako učebnice je to omezeně použitelné.
  2. D. R. Musser, G.J. Derge, A. Saini: STL Tutorial and Reference guide, Second Edition.Addison-Wesley, 2001. ISBN 0-201-37923-6. Anglicky.
    Ukazuje použití konstrukcí ze STL (nejen tříd, ale i algoritmů). Podstatně lépe čitelné než předchozí publikace. Ve skutečnosti asi jedna z nejlepších publikací o STL. Anglicky.
  3. P. J. Plauger: The Draft Standard C++ Library.Prentince Hall 1995. ISBN 0-13-117003-1. Anglicky.
    Popis hlavních hlavičkových souborů obsahujících standardní knihovnu jazyka C++ a tříd v nich, ovšem podle návrhu standardu z doby před rokem 1995. To znamená, že dnes jde o zastaralou záležitost. Například datové proudy zde nejsou ještě implementovány prostřednictvím šablon, liší se používání tříd rysů (traits), nepopisuje alokátory, lokální nastavení pouze zmiňuje atd. Liší se i jména hlavičkových souborů. Dnes již jen omezeně použitelné, pokud nepracujete s překladačem z oné doby. (Pozor, slovo "draft" je na obálce velice nenápadné).
  4. S. Meyers: Effective STL. Addison-Wesley 2001. ISBN 0-201-74962-9. Anglicky.
    Předpokládá povrchní znalost základních tříd knihovny STL. Vysvětluje použití kontejnerů (prostřednictvím iterátorů) a v 50 kapitolkách ukazuje problémy, na které můžeme narazit. Velice užitečná kniha.
  5. Nicolai S. Josuttis: The C++ Standard Library. Addison-Wesley 1999. ISBN 0-201-37926-0. Anglicky. 799 stran, cena 57,99$.
    Podrobná a dobře napsaná kniha. Na rozdíl od většiny autorů se nevěnuje jen kontejnerům, iterátorům a případně algoritmům a pomocným třídám, ale např. i třídě locale a problémům neanglických jazyků. (Autor žije v Německu. Zřejmě je nutné, aby šlo o knihu od autora, jehož rodnou řečí není angličtina, aby tuto problematiku považoval za hodnou zmínky. Poznamenejme ale, že v dodatku ke Stroustrupově knize je výklad o lokálním nastavení možná přehlednější.)
  6. Leen Ammeraal: STL for C++ Programmers. John Wiley & Sons 1997. ISBN 0-471-97181-2. Anglicky.
    Stručný, ale efektivně napsaný úvod do STL. Recenze citované na obálce říkají, že "hned po přečtení lze v STL programovat". Vychází ovšem ze starší verze návrhu standardu, a proto se mohou některé drobnosti odlišovat od konečné podoby standardu.

Seznam schválen Ing. Miroslavem Viriem, CSc. (Programování v C++)


Článek stažen z webu Programujte.com [ http://programujte.com/clanek/2005041401-c-0-lekce/ ].