C++: Rozdiel medzi revíziami
Smazaný obsah Přidaný obsah
d r2.7.1) (robot Zmenil: hy:C++ |
Aktualizácia vzhľadom k C++11, oprava niekoľkých chýb. |
||
Riadok 3:
Druh = viacparadigmový |
Interpretovaný = nie |
Dátum vzniku = 1985, naposledy upravený
Tvorca = [[Bjarne Stroustrup]]|
Typová kontrola = silná, statická, nie bezpečná |
Riadok 14:
'''C++''' je viacparadigmový [[programovací jazyk]] vyššej úrovne na všeobecné použitie, ktorý umožňuje pracovať aj s prostriedkami nízkej úrovne. Má [[statická typová kontrola|statickú typovú kontrolu]], podporuje procedurálne programovanie, dátovú abstrakciu, objektovo orientované programovanie, ale aj generické programovanie. Od 90-tych rokov 20. storočia patrí k najpopulárnejším programovacím jazykom, požíva ho až vyše 95% engine-ov počítačových hier.
[[Bjarne Stroustrup]] vyvinul C++ (pôvodne nazvaný "''C with Classes''") v roku 1983 v [[Bell Labs]] ako rozšírenie [[C (programovací jazyk)|jazyka C]]. Rozširovanie začalo pridaním tried a neskôr pokračovalo pridávaním ďalších vlastností ako sú [[virtuálna funkcia|virtuálne funkcie]], prekrývanie operátorov, [[viacnásobná dedičnosť]], šablóny a [[ošetrenie výnimky|ošetrenie výnimiek]]. Štandard jazyka C++ bol schválený v roku 1998 ako ''[[ISO/IEC 14882]]:1998'', aktuálna verzia je z roku 2003 (''ISO/IEC 14882:2003''). Nová verzia štandardu (
== Dejiny ==
Ešte v roku [[1979]] Stroustrup začal pracovať na ''C with Classes'' (C s triedami). Pri tvorbe nového jazyka vychádzal zo skúseností z dizertačnej práce. Stroustrup zistil, že niektoré črty [[Simula|Simuly]] by boli mimoriadne užitočné pri vývoji veľkých softvérových produktov, ale Simula je príliš pomalá na praktické používanie, zatiaľ čo [[BCPL]] je rýchle, ale príliš nízko-úrovňové a nevhodné na vývoj väčších projektov. Keď Struostrup začínal pracovať pre [[Bell Labs]] jeho úlohou bolo analyzovať [[unix]]ové [[Kernel|jadro]] s prihliadnutím na distribuované výpočty. Využijúc skúsenosti z dizertačnej práce smeroval k rozšíreniu jazyka C o črty aké mala Simula. Jazyk C si vybral kvôli jeho zameraniu na všeobecné použitie, rýchlosti a [[
V roku 1983 sa zmenil názov jazyka z ''C with Classes'' na C++. Pribúdali nové črty ako virtuálne funkcie, preťažovanie funkcií a operátorov, referencie, konštantné premenné, práca s [[Zreťazená voľná pamäť|haldou]], zlepšená typová kontrola a nový štýl komentárov na jeden riadok zapísaný pomocou dvoch lomiek (//). Keď bola v roku 1985 vydaná prvá verzia ''programovacieho jazyka C++'' poskytovala dôležité odkazy na jazyk, ktoré sa ale ešte nestali oficiálnym štandardom. V roku 1989 vyšla verzia jazyka 2.0. Novými vlastnosťami boli viacnásobná dedičnosť, abstraktné triedy, funkcie triedy (statické funkcie), konštantné členské funkcie, neverejné atribúty (protected members). O rok nato vyšla referenčná príručka (''The Annotated C++ Reference Manual''). Táto práca sa stala základom pre budúci štandard. Nedávno boli doplnené ďalšie črty vrátane šablón, výnimiek, menných priestorov, pretypovania a booleovského dátového typu.
Riadok 23:
Ako sa vyvíjal jazyk samotný, spolu s ním sa vyvíjali aj knižnice. Prvá knižnica pridaná k štandardu C++ bola knižnica vstupno-výstupných streamov, ktorá poskytoval nástroje nahrádzajúce funkcie jazyka C ako sú printf, alebo scanf. Neskôr sa k najvýznamnejším rozšíreniam štandardu pridala STL ([[Standard Template Library]]).
Po rokoch práce po spojení komisie [[American National Standards Institute|ANSI]] a [[International Organization for Standardization|ISO]] bol jazyk C++ štandardizovaný v roku 1998 (''[[ISO/IEC 14882]]:1998''). O niekoľko rokov po oficiálnom vydaní štandardu komisia zapracovala hlásenia chýb a vydala opravenú verziu štandardu v roku 2003. V roku 2005 bol schválená odborná správa nazvaná [[Technical Report 1|Library Technical Report 1]] (často skrátene označovaná TR1).
Aj keď jazyk C++ je bezplatný, štandard nie je voľne dostupný.
Riadok 50:
* C++ je navrhnutý na fungovanie bez zložitého programovacieho prostredia.
Stanley B. Lippman podrobne popisuje rozličné modely v knihe '''Inside the C++ Object Model''' (1996) ako kompilátor môže previesť výrazy jazyka C++ na pamäťový model. Dodávatelia kompilátora nie sú obmedzovaný akým spôsobom implementujú štandard. Lippman pracoval na implementácii a údržbe [[Cfront|Cfront-u]]
== Štandardná knižnica ==
Štandard C++ z roku 1998 sa skladá z dvoch častí: samotného jazyka (tiež niekedy aj jadro jazyka) a [[C++ štandardná knižnica|C++ štandardnej knižnice]]. Neskôr zahŕňa väčšinu z [[Standard Template Library]] a mierne upravenej verzie štandardnej knižnice jazyka C. Existuje veľa knižníc C++, ktoré nie sú časťou štandardu a používajú externé linkovanie. Knižnicou dokonca môžu byť napísané aj v [[C (programovací jazyk)|jazyku C]].
Štandardná knižnica jazyka C++ zahŕňa štandardnú knižnicu jazyka C s niekoľkými malými úpravami, aby umožňovala lepšiu prácu v jazyku C++. Ďalšia veľká časť knižnice C++ je založená na Standard Template Library (STL). Táto poskytuje také užitočné nástroje ako sú kontajnery (napríklad ''vektor'' – [[pole (údajová štruktúra)|pole]], ''list'' – [[zreťazený zoznam]]), [[iterátor]]y (zovšeobecnené [[ukazovateľ (informatika)|ukazovatele]]). Tieto kontajnery poskytujú podobný prístup ako pole a poskytujú operácie ako vyhľadávanie a triedenie. Knižnica ďalej ponúka (multi)mapy ([[asociatívne pole|asociatívne polia]]), (multi)množiny, ktoré ponúkajú podobné
Používanie štandardnej knižnice—napríklad používanie std::vector, alebo std::string namiesto polí v štýle jazyka
STL bola pôvodne knižnica vyrobená a používaná firmou [[Hewlett-Packard]] a neskôr [[Silicon Graphics]], pred jej začlenením do štandardu C++. Štandard sa na ňu neodkazuje ako na "STL", ale len ako na časť štandardnej knižnice, ale veľa ľudí stále používa tento pojem na odlíšenie od ostatných častí knižnice.
Riadok 103:
=== Úvod ===
Výhodou C++ je, že už má zabudovanú podporu objektov. Objekty sú dobré na rôzne veci. Sú aj modernejšie jazyky ktoré zvládajú prefíkanejšie metódy ako napr. [[C#]], ale C++ je z objektových jazykov
=== Zabalenie funkcionality (enkapsulácia) ===
V [[C (programovací jazyk)|C]] alebo [[asembler]]i treba na naštartovanie nejakej funcionality zavolať veľa funkcií, napr. na inicializáciu, alokáciu pamäte a po skončení zas na ukončenie a uvoľnenie pamäte. Niekedy to môže byť dosť komplikované a neprehľadné a dajú sa tu hlavne pod stresom robiť chyby ktoré sa potom ťažko hľadajú.
V C++ môžeme vyrobiť objekt, ktorý toto všetko
;Príklad
Chceme vytvoriť jednoduchú
<source lang="cpp">
|