Tuhle knihu jsem dopsal na konci roku 1991 — v době, kdy byl horkou
novinkou překladač Borland C++ 3.0, který přinesl šablony a uměl překládat
programy pro Windows 3.0...
Přiznám se, že jsem ji v poslední době považoval za něco,
co už patří minulosti.
Nicméně z ohlasů čtenářů zjišťuji, že ji stále řada lidí používá, a proto zde uvádím opravy a poznámky k ní.
Upozorňuji, že je silně ovlivněna zkušeností s překladači firmy Borland,
neboť v době jejího vzniku dominovaly na trhu.
Chcete vědět, jak ta kniha vznikla?
Strana | Řádek | Je | Má být | |
52 | obrázek | (Syntaktický diagram je zjednodušený — nevystihuje možnost, že jako první může být i alternativa default a že za alternativou default mohou následovat další alternativy case.) | ||
93 | 10. shora | struct Prvek {struct Obs obsah; struct *Prvek dal;}; | struct Prvek {struct Obs obsah; struct Prvek* dal;}; | |
120 | 2. shora | V Turbo C máme možnost... | V jazyce C máme možnost... (Tvrzení patí obecně, nejen v TC.) | |
123 | 1. shora | ...deklaraci proměnné bez specifikace... | ...deklaraci globální proměnné bez specifikace... | |
123 | K odd. 6.6.1 | (Je třeba zdůraznit, že pracovní deklarace nejsou k dispozici v C++ a ani v C nepatří do dobrého programovacího stylu.) | ||
135 | 1. shora | sizeof(označení_typu) | (Řádek lze odstranit, opakuje se na předchozí straně.) | |
160 | 10. shora | ...před návratem s funkce... | ...před návratem z funkce... | |
161 | 10. shora | 1 je-li m = 0 | 1 je-li n = 0 | |
187 | 8. shora | Přitom musíme použít právě jednu hodnotu... | Přitom můžeme použít právě jednu hodnotu... | |
214 | 14. shora | Tato direktiva zaručí, že robustní funkce nezmění obsahy žádného z registrů (po vstupu ... obnoveny). | Tato direktiva zabezpečí, že při vstupu do robustní (huge) funkce nebude změněn obsah žádného z registrů. Neznamená totéž co modifikátor saveregs (viz 14.9). Příkazy v těle funkce mohou hodnoty registrů měnit. | |
241 | 10. zdola | ...bude mít každý vzdálený objekt vlastní datový segment. | (Platilo v Turbo C++ 1.0 a Borland C++ 2.0. Pozdější dosovské překladače firmy Borland ukládaly vzdálené objekty do společného datového segmentu.) | |
252 | K odd. 14.9 | (Všechny zde rozebírané modifikátory jsou specifika Borland C++.) | ||
252 | K odd. _saveregs | (Raději tento modifikátor nepoužívejte, může se přeložit špatně — chyby překladačů.) | ||
270 | obrázky | (Obrázky ukazují možné uložení instancí v paměti. Platí v Borland C++, v jiných překladačích může být jiné.) | ||
271 | 8. shora | ...nejprve složky děděné virtuálně... | ...nejprve složky děděné nevirtuálně... | |
292 | 11. zdola | ...určuje instanci třídy X, ve kterém... | ...určuje instanci třídy X, ve které... | |
292 | 4. zdola | ...ukazatel na instanci třídy X, ve kterém... | ...ukazatel na instanci třídy X, ve které... | |
293 | 8. zdola | ... a přístupová práva pro ně nelze předefinovat. | ... ale přístupová práva pro ně lze předefinovat.
(Uvedené omezení platilo v některých starších překladačích, ale obecně neplatí — pro členy unií lze specifikovat přístupová práva podobně jako pro členy ostatních objektových typů.) | |
305 | 10. shora | b = c = 2; | c = b = 2; | |
305 | nadpis 16.7 | OPERÁTROR PŘETYPOVÁNÍ | OPERÁTOR PŘETYPOVÁNÍ |
Na začátek stránky Moje domovská stránka Seznam publikací Poznámky