Obecně
C++ je víceúčelovým programovacím jazykem se statickou kontrolou typu zaměřený na systémové programování. Podporuje datovou abstrakci, objektově orientované programování, generické programování. Je to jazyk, který umožňuje programování pomocí více forem (paradigmat). Jejich použití závisí na druhu a cíli aplikace.
Standard
Standardy:
ISO/IEC 14882:1998,
ISO/IEC 14882:2003 (The Second Edition, __cpluplus je stále 199711L). Standardní knihovna vznikla kompilací praxí osvědčených tříd. Proto není výsledek homogenní. Nedostatky se průběžně opravují novelizací standardu. Kód napsaný s dodržením standardu je přenositelný.
Budoucí standard jazyka je pracovně označen jako C++0X. Jeho návrh a implementace std::tr1 (The Standard Library Extensions Technical Report) jsou založené na projektu Boost C++. Boost C++ je portál věnovaný standardizaci C++, a je tak považován za šablonu pro ISO C++0X. Tvoří jej API složené z množství kvalitních konzistentně navržených knihoven (regulární výrazy, zpracování argumentů, tuple, lambda funkce, serializace dat, práce s varianty, soubory, práce s vlákny, náhodné generátory, sdílená paměť...) pro multiplatformní programování. Licence Boost C++ umožňuje použití v uzavřeném i otevřeném zdrojovém kódu.
Standardní API a ABI
Standard C++ neupravuje způsob implementace, ale chování. Proto nemusí být sestavené binární objekty přenositelné mezi různými platformami ani překladači. Řešením je dodžovat při kompilaci
C++ Standard library ABI (standardu odpovídající knihovna - API + standardu odpovídající překladač - ABI).
Oblasti aplikace jazyka
Oblast, kde se jazyk využívá, je široká.
Používá se pro průmyslové aplikace, lékařské aplikace, simulační aplikace, reporting, vizualizaci, v telekomunikaci, řízení, identifikaci, hrách, embedded zařízení, soft/hard realtime, v systémovém programování.
C a C++
Dva operátory
+ v názvu mají vyjadřovat vývoj od jazyka C k C++ (vymyslel Rick Mascitti v r. 1983), přesto standardizační komise obou jazyků se snaží o jejich
přiblížení v budoucnosti. Dovednosti a techniky, jak psát v jazyku C kvalitní program,
nejsou podmnožinou dovedností a technik, které vedou ke kvalitnímu programu v C++, proto je
doporučeno začít přímo s C++.
Standard psaní kódu v C++
Tento standard není oficiálním, avšak jeho dodržování pomáhá v čitelnosti kódu mezi uživateli C++.
Je dobré vědět
Doporučená konvence pro přípony:
- zdrojové soubory: cpp
- hlavičkové soubory: hpp
Opravdu zlé věci v C++ jsou: ukazatele, pole a makra. Pokud můžete, vyhněte se jim pomocí referencí, chytrých ukazatelů (auto_ptr, shared_ptr, weak_ptr), iterátorů, inline funkcí, šablon, RAII. Pokud se jim nevyhnete, pak je použijte.
Téměř oficiální stránky pro C++ FAQ: www.parashift.com
Diskuzní fóra věnované standardu C++:
Fóra věnovaná použití C++ v *nixu, g++:
Překladače pro Linux.:
- GNU C++ 2.95.3 (s i bez portu STL), 3.2.x., 3.3.x, 3.4.x, 4.0.x
- Intel C++ 8.1, 9.0
- Sun Studio 10
- IBM XL C/C++ Advanced Edition V7.0
- Compaq C++ for Linux Alpha
- HP C++ compiler for Linux 7.0
- Comeau C+/C++ 4.3.3
IDE pro Linux:
Debuggery pro Linux:
- gdb, grafické nadstavby: ddd
- TotalView
Komplexní testy zdrojového kódu:
Beautifier pro půvabnější kód:
Doplňování kódu ve Vim v7:
Abecední seznam knihoven: www.trumphurst.com
Seznam GUI knihoven pro C++:
guitool
Nástroj pro tvorbu dokumentace: Doxygen
Nástroj pro parsování chybových hlášení překladače o šablonách: STLFilt
Parsery:
Interaktivní interpret C++:
Stránky komise posuzující standard C++: JTC1/SC22/WG21 - C++.
Komisi tvoří skupina dobrovolníků, z nichž někteří jsou zaměstnanci firem (Intel, IBM, Microsoft, Sun, AT&T...), které díky zpětné vazbě mají vliv na rozvoj standardu. Členem komise je i Bjarne Stroustrup, který navrhl jazyk C++. Hlavní diskuze se odvijí v síti Usenetu, zejména ve fóru comp.std.c++. Symbol C++ není ochrannou známkou, není chráněn autorskými právy, nikdo jej nevlastní. Jeho význam a definice pouze podléha ISO/IEC 14882.
Česká nebo lokalizovaná literatura:
- Myslíme v jazyku C++ I., Bruce Eckel
- Myslíme v jazyku C++ II., Bruce Eckel
- Rozumíme C++, Koenig Andrew, Moo Barbara E.
- Mistrovství v C++, Prata Stephen
- Naučte se programovat! - průvodce programováním v C++, Francis Glassborow
- Programovací jazyk C++ pro zelenáče, Šaloun Petr
- Nauč se sám C++, Herb Schildt
- Naučte se C++ za 21 dní, Liberty Jesse
- Pasti a propasti jazyka C++, Miroslav Virius
- Standardní knihovna STL, kompletní průvodce, Nicolai. M. Josuttis
- Moderní programování v C++, Andrei Alexandrescu
- C++ 101 programovacích technik, H. Sutter ,A. Alexandrescu
- C++ Programovací jazyk, Stroustrup Bjarne
- Algoritmy a datové struktury, P. Wróblewski
- Jazyky C a C++ podle normy ANSI/ISO, D. Louis, P.Mejzlík, M. Virius
- Jazyky C a C++ kompletní kapesní průvodce, Miroslav Virius
- Návrh programů pomocí vzorů, Gamma, Helm, Johnson, Vlissides
- Učebnice jazyka C, Pavel Herout
- Učebnice jazyka C - 2. díl, Pavel Herout