Programovací jazyk C++

Vítejte na stránkách, které se zabývají programovacím jazykem C++ a souvisejícími tématy jako standardní knihovna C++ nebo knihovna STL.

Obsah těchto stránek se zabývá již normami jazyka schválenými v letech 2011, 2014 a 2017. Všechny články mají v záhlaví uvedeno, v jaké normě se vyskytují popisované jazykové prvky popisované. Starší normy jazyka C++ vydané před rokem 2011 již nejsou předmětem zájmu těchto webových stránek. Rovněž se zde budeme snažit držet již zmíněných standardů C++ a prvky specifické pro konkrétní platformy budou zmiňovány jen okrajově, pokud vůbec.

Nabízí se také otázka, k čemu vlastně je jazyk C++ v dnešní době ještě dobrý. Je pravdou, že tento jazyk je již dlouhou dobu na ústupu z oblasti programování systému ryze obchodního charakteru, kde dominují jazyky Java, PHP či technologie .NET. Vzhledem k tomu, že C++ obsahuje jazykové prvky, jak z oblasti blízké hardware, tak z oblasti pro programování vyšších vrstev software, nachází C++ uplatnění primárně na pomezí nízkoúrovňového a vysokoúrovňového programování. Časté jsou aplikace tohoto jazyka pro vložené systémy nebo systémy pro odezvu v reálném čase.

Vzhledem ke snahám mezinárodní standardizační komise C++ nabídnout programátorům bezpečnější a čistší způsob programování v C++ formou zapouzdření nízkoúrovňových prvků jako ukazatele, klasická pole nebo operátory new a delete do šablon STL a tím poskytnutí možnosti programovat na vyšší úrovni abstrakce, budu se snažit používat tyto prvky STL již od úplných začátků s tím, že i když čtenář nebude moci a ani nebude muset plně rozumět, jak tyto věci fungují uvnitř. Cílem je neodradit začátečníky složitostí různých věci jako je například aritmetika ukazatelů a ukázat, že i C++ má, hlavně díky STL, svoji “lidskou tvář” a dávno to již není jazyk pro lidi s IQ 150 a vyšší.

Stránky jsou rozděleny do několika samostatných kapitol, kde je výklad daného tématu podáván jak formou “tutoriálu”, tak místy i referenční příručka. Jsou to následující kapitoly:

  • Základy jazyka C++
    Tato kapitola pojednává o naprostých základech jazyka C++ v oblasti čistě procedurálního programování. Jedinou předpokládanou znalostí čtenáře je, že se již někdy v minulosti zabýval vývojem software alespoň dle procedurálního paradigmatu.
  • Objektově orientované programování
    V této kapitole se již rozebírají prvky jazyka C++ určené pro objektové programování. Nutnými předpoklady jsou znalosti z předchozí kapitoly a alespoň hrubá znalost programování dle OOP paradigmatu.
  • Knihovna STL
    Tato kapitola pojednává o knihovně STL. Je nutná znalost obou předchozích kapitol a základní znalost šablonové technologie. Samozřejmostí je již důkladná znalost OOP v jazyce C++. V této kapitole jsou již výkladové pasáže spíše ojedinělé a měla by čtenáři sloužit jako zjednodušená referenční příručka k STL než získá nutné povědomí o šablonové technologii natolik, že bude schopen vyhledávat například v www.cplusplus.com pro prodrobnější informace.
  • Pokročilé techniky C++
    Tématem této kapitoly jsou již pokročilejší techniky C++, kde se budeme zabývat i již nízkoúrovňovými záležitostmi tohoto jazyka.
  • Šablonová technologie
    V této kapitole bude podrobně rozebrána problematika šablon jako základního stavebního kamene pro STL.
  • Metaprogramování
    Tato kapitola se zabývá již náročnými tématy, jak lze provádět jednoduché výpočty a generovat kód za pomocí čistě překladače C++. Běžný programátor již nebude potřebovat znalosti této kapitoly. Je určena pro zájemce a pro čtenáře, které zajímá do hloubky, jak je vystavěna knihovna STL.