Jednφm z nejrozÜφ°en∞jÜφch programovacφch jazyk∙ se stal jazyk C a pozd∞ji i jeho objektov∞ orientovanß nadstavba C++ . V²hody obou t∞chto jazyk∙ p°edurΦujφ jejich vyu₧itφ v mnoha oblastech poΦφtaΦovΘho sv∞ta. Vzhledem k jeho v²born²m vlastnostem se jazyk C stal velmi populßrnφm a postupn∞ se vyvinulo n∞kolik jeho verzφ a₧ po souΦasn² standard ANSI C++ (ANSI - American National Standard for Information Systems - Americk² nßrodnφ standard pro informaΦnφ systΘmy). Tφmto standardem se takΘ budeme v naÜem kurzu zab²vat.
Text jednotliv²ch kapitol je orientovßn p°evß₧n∞ na popis jazyka v rßmci probφranΘ lßtky. UvedenΘ p°φklady a dalÜφ doprovodnΘ materißly nejsou jedin²m sprßvn²m °eÜenφm (nekladu si nßrok na dokonalost m²ch program∙). Proto je t°eba je pova₧ovat za pouze jedno z mo₧n²ch °eÜenφ problΘmu a cφlem je ukßzat p°edevÜφm popisovanΘ rysy jazyka. Jeden problΘm jde °eÜit mnoha r∙zn²mi cestami. Programßtor by si m∞l vybrat cestu takovou, aby v²sledn² program byl co nejefektivn∞jÜφ, ale zßrove≥ co nejspolehliv∞jÜφ - jin²mi slovy: lφn² programßtor je Üpatn² programßtor. Programov² k≤d, kter² zajiÜ¥uje stabilitu programu toti₧ Φasto mnohonßsobn∞ zv∞tÜφ v²sledn² program. Na druhou stranu platφ, Φφm delÜφ program, tφm je program pomalejÜφ. K tomuto problΘmu se vrßtφme jeÜt∞ pozd∞ji.
V kurzu je u₧ito dvou typ∙ sazby. V sazb∞ b∞₧nΘho textu v²kladu je pou₧ito normßlnφ pφsmo, stejnΘ jak²m je psßn i tento text. Vlastnφ program je psßn "pφsmem psacφho stroje" s barevn²m odliÜenφm jednotliv²ch tzv. lexikßlnφch prvk∙ (podobnΘ se slovnφmi druhy v ΦeskΘm jazyce - podstatnΘ jmΘno, sloveso apod.) programovacφho jazyka. Nap°φklad klφΦovß slova jazyka (int, class) jsou vytiÜt∞na mod°e, ostatnφ k≤d je Φern² a komentß°e jsou sv∞tle zelenΘ.
Kurz se Φasto bude odkazovat na kurz o v²vojovΘm prost°edφ Visual C++ (dßle jen VC++), proto₧e budeme pracovat prßv∞ s tφmto v²vojov²m prost°edφm. Pokud nevlastnφte VC++, programy je mo₧no psßt i v jin²ch v²vojov²ch prost°edφch neboli IDE (Integrated Development Environment - integrovanΘ v²vojovΘ prost°edφ). StaΦφ vßm C++ Builder nebo dokonce star² Borland C++ 1.0 pod DOS, proto₧e jazyk je v₧dy stejn². P°esto n∞kterΘ mo₧nosti nebudou dostupnΘ a pokud mo₧no, bude na to v textu upozorn∞no.
U ka₧dΘ lekce bude mo₧no si stßhnout jak zdrojovΘ k≤dy vÜech uveden²ch p°φklad∙, tak i p°φmo spustitelnΘ programy (spustitelnΘ pouze pod Windows).
Pokud to nenφ nutnΘ, nejsou pou₧ity specißlnφ vlastnosti C++ dostupnΘ nap°. jen v jednom v²vojovΘm nßstroji. Na mφstech, kde jsou specißlnφ vlastnosti C++ vyu₧ity, je to v²slovn∞ uvedeno.
Jazyk C++ je pokraΦovatelem jazyka C a obsahuje a₧ na v²jimky cel² jazyk C. Jazyk C++ je narozdφl od svΘho p°edch∙dce objektov∞ orientovan². Co to p°esn∞ znamenß nßs prozatφm nemusφ zajφmat.
V lΘt∞ roku 1989 spoleΦnost AT&T zve°ejnila specifikaci pro AT&T C++ Release 2.0. Tato novß verze obsahuje n∞kterΘ v²znamnΘ zm∞ny, kterΘ °eÜφ n∞kterΘ problΘmy s d°φv∞jÜφmi verzemi C.
P∙vodnφ jazyk C byl vyvinut pro operaΦnφ systΘm Unix na poΦφtaΦφch DEC PDP-11. Pro svoje vlastnosti si zφskal znaΦnou oblibu a dnes je C i C++ k dispozici v mnoha operaΦnφch systΘmech na r∙zn²ch poΦφtaΦφch. Jazyk C byl p∙vodn∞ urΦen pro systΘmovΘ programovßnφ Unixu a tΘm∞° cel² Unix je v n∞m napsßn. Proto je takΘ C samoz°ejmou souΦßstφ ka₧dΘho UnixovΘho OS.
Jazyky C a C++ jsou vÜak dob°e pou₧itelnΘ i v mnoha jin²ch oblastech programovßnφ, nap°. hromadnΘ zpracovßnφ dat, prßce s textov²mi informacemi, °eÜenφ numerick²ch ·loh a mnoho dalÜφch oblastφ. Svou oblibu hlavn∞ zφskal kv∙li velkΘ rychlosti vytvo°en²ch program∙, kterΘ jsou dob°e p°enositelnΘ do jin²ch operaΦnφch systΘm∙.
DalÜφm d∙vodem obliby obou jazyk∙ je to, ₧e v nich lze pou₧φvat obdobnΘ operace a tvary jako p°i programovßnφ v jazyku assembler (jazyk nejni₧Üφ ·rovn∞). Velmi siln²m prost°edkem jsou nap°. ÜirokΘ mo₧nosti prßce s adresami dat a funkcφ. P°i vhodnΘm zp∙sobu programovßnφ se pak programy napsanΘ v C/C++ mohou svojφ rychlostφ tΘm∞° rovnat rychlosti stejnΘho programu psanΘho v assembleru, ale s mnohem menÜφm ·silφm.
V souΦasnΘ dob∞ je C++ pravd∞podobn∞ nejrozÜφ°en∞jÜφm programovacφm jazykem zvlßÜt∞ profesionßl∙ a dalÜφch odbornφk∙. Existuje pro n∞j spousta v²vojov²ch prost°edφ, jmenujme ty nejznßm∞jÜφ: Visual C++ (Windows), C++ Builder, Borland C++, DJGPP (DOS).
Na zßv∞r vßm doporuΦφm n∞kterou literaturu, kterß vßm m∙₧e pomoci nejen p°i zaΦßtcφch s C, ale i pozd∞ji a₧ ovlßdnete C a pustφte se do objektovΘho programovßnφ. P°esto v knize nem∙₧e b²t vÜe a hlavn∞ kniha vßm nebude odpovφdat na dotazy. Jist∞ budete mφt po prvnφ lekci mnoho dotaz∙, kterΘ tu zve°ejnφm i s odpov∞dφ (pro vφce informacφ se podφvejte do rubriky "Otßzky a odpov∞di"). Publikacφ na toto tΘma je samoz°ejm∞ velkΘ mno₧stvφ. Vypisuji zde pouze knihy, se kter²mi mßm vlastnφ zkuÜenosti.
UΦebnice jazyka C 1., Pavel Herout, Kopp, ╚eskΘ Bud∞jovice, 1996
Snad ka₧d² programßtor se setkal s touto publikacφ pro ·plnΘ zaΦßteΦnφky, kterß vßs v²born²m
zp∙sobem seznßmφ s jazykem C. Jedinou nev²hodou tΘto knihy je, ₧e vßm ne°ekne nic o C++,
p°esto ji v°ele doporuΦuji i lidem s malou programßtorskou zkuÜenostφ jako uΦebnici a t∞m
zkuÜen∞jÜφm jako referenci. Kniha
mß i druh² dφl, kter² prohlubuje znalosti C a programovßnφ pod DOSem. Dle mΘho nßzoru nenφ
toto pokraΦovßnφ nutnΘ ke zvlßdnutφ C++. Cena prvnφho dφlu je 149KΦ.
Programujeme v jazyce Visual C++, Mark Andrews, Microsoft Press, Praha, 1997
DalÜφ krok, kter² uΦinφte a vstoupφte tak do objektovΘho sv∞ta. Kniha se p°evß₧n∞ zab²vß
programovßnφm pod Windows ve Visual C++ 1.0, kterΘ naleznete na p°ilo₧enΘm CD. Jsou zde
vysv∞tleny zßkladnφ pojmy C++ jako jsou t°φdy a objekty, dßle nap°φklad d∞diΦnost a
polymorfismus. Hlavnφ v²hodou tΘto knihy je, ₧e vßs seznßmφ s knihovnou MFC (Microsoft
Foundation Class), ke kterΘ se dostaneme n∞kdy na zaΦßtku p°φÜtφho roku. Na druhou
stranu je to velk² skok od knihy pana Herouta a zaΦßtky jsou tudφ₧ znaΦn∞ obtφ₧nΘ.
Snad vßm pomohou tyto kurzy. Cena je 295KΦ.
T°φdy a objekty C++, Stanislav Racek, Martin Kvoch, Kopp, 1998
DalÜφ publikace se op∞t zab²vß jen C++. Tato spφÜe referenΦnφ p°φruΦka ne₧ uΦebnice
popisuje vÜechny rysy C++. Navφc zde najdete struΦnou anal²zu problΘmu a nßvrh projektu,
co₧ nenφ ÜpatnΘ si p°eΦφst, i kdy₧ to ze zaΦßtku nevyu₧ijete. Cena je 149KΦ.
Mistrovstvφ ve Visual C++, David J. Kruglinski, Microsoft Press, Brno, 1999
èpiΦkovß publikace o programovßnφ ve Windows ve Visual C++ 5.0, kterΘ se od verze 6.0 tΘm∞° neliÜφ,
tak₧e vßm pln∞ postaΦφ. Popisuje jak v²vojovΘ prost°edφ VC++, tak MFC, ale je nutnΘ znßt alespo≥
zßklady C++, tak₧e nenφ vhodnß pro zaΦßteΦnφky. Zabrousφ prakticky do vÜech kout∙ programovßnφ s
MFC vΦetn∞ takov²ch specialit jako je COM (Component Object Model). DruhΘ vydßnφ navφc obsahuje
ATL (Advanced Template Library). Nßsleduje krßtk² v²Φet z obsahu tΘto knihy: GDI (Graphics Device
Interface), DLL (Dynamic Link Library), ActiveX prvky, databßze ODBC a DAO, programovßnφ s TCP/IP
a dalÜφ. Cena je 850KΦ.
Na zßv∞r vßm ve zkratce povφm, co nßs Φekß p°φÜt∞. P°φÜt∞ si n∞co povφme o prom∞nn²ch a operßtorech. Ukß₧eme si, jak prom∞nnou vytvo°it a jak s nφ pracovat. Stihneme hlavnφ funkci main(). O funkcφch jeÜt∞ nic nevφte, ale p°φÜt∞ se dozvφte, jak pracuje funkce main(). Dotazy mi posφlejte na email a v p°φÜtφm dφlu budou otiÜt∞ny i s odpov∞dφ, tak si budou moci p°eΦφst vßÜ dotaz vÜichni.
T∞Üφm se p°φÜt∞ nashledanou.