Ebooks, Audobooks and Classical Music from Liber Liber
a b c d e f g h i j k l m n o p q r s t u v w x y z





Web - Amazon

We provide Linux to the World


We support WINRAR [What is this] - [Download .exe file(s) for Windows]

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
SITEMAP
Audiobooks by Valerio Di Stefano: Single Download - Complete Download [TAR] [WIM] [ZIP] [RAR] - Alphabetical Download  [TAR] [WIM] [ZIP] [RAR] - Download Instructions

Make a donation: IBAN: IT36M0708677020000000008016 - BIC/SWIFT:  ICRAITRRU60 - VALERIO DI STEFANO or
Privacy Policy Cookie Policy Terms and Conditions
C++ - Wikipédia

C++

Z Wikipédie

C++
Druh: viacparadigmový
Dátum vzniku: 1985, naposledy upravený 2003
Použitie: všeobecné
Typová kontrola: statická, nie bezpečná
Tvorca: Bjarne Stroustrup
Implementácie: {{{Implementácie}}}
Dialekty: {{{Dialekty}}}
Používané prípony: .cc, .cpp, .cxx, .C, .CC, .h, .hpp, .hh

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ú 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.

Bjarne Stroustrup vyvinul C++ (pôvodne nazvaný "C with Classes") v roku 1983 v Bell Labs ako rozšírenie jazyka C. Rozširovanie začalo pridaním tried a neskôr pokračovalo pridávaním ďalších vlastností ako sú virtuálne funkcie, prekrývanie operátorov, viacnásobná dedičnosť, šablóny a 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 (neformálne známa pod označením C++0x) sa vyvíja.

Obsah

[úprava] História

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 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ť unixové 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 portabilite. Okrem jazykov C a Simula ho inšpirovali aj jazyky ALGOL 68, Ada, CLU a ML. Postupne pridával triedy, dedičnosť tried, silnú typovú kontrolu, inline funkcie a štandardné hodnoty parametrov do jazyka C pomocou nástroja Cfront. Prvú štandardnú verziu vydal v októbri 1985.[1]

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 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.

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šíreniamu štandardu patrila STL (Standard Template Library).

Po rokoch práce po spojení komisie ANSI a 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á Library Technical Report 1 (často skrátene označovaná TR1). Kým nie je oficiálnou časťou štandardu, poskytuje množstvo rozšírení štandardnej knižnice, pri ktorých sa očakáva, že budú zahrnuté do ďalšej verzie jazyka. Podpora TR1 pribúda vo väčšine kompilátorov, ktoré sú v súčasnosti udržiavané.

Aj keď jazyk C++ je bezplatný, štandard nie je voľne dostupný.

[úprava] Názov C++

Toto meno bolo vytvoril Rick Mascitti (v roku 1983) a prvý krát bolo použité v decembri 1983. Predtým, počas výskumu sa jazyk označoval ako "nové C", potom "C s triedami" (C with classes). Konečný názov C++ pochádza z operátora "++" v jazyku C (ktorý zvyšuje hodnotu premennej) a častej konvencie, že "+" sa používa vo význame vylepšený. Podľa Stroustrupa: "Meno znamená evolučnú povahu zmien z jazyka C". Predtým existoval nepríbuzný programovací jazyk nazvaný C+.

Stroustrup sa nového mena ujal v začiatkoch a v predslove k neskorším vydaniam knihy dodáva, že "C++" by mohlo byť odvodené z prílohy knihy "1948" od George Orwella. Z troch častí fiktívneho jazyka Newspeak, časť "C vocabulary" je určená pre technické výrazy a slang. Dvojité plus sa v Newspeaku používa na vyjadrenia superlatívu prídavných mien. Teda "C++" by mohlo mať význam "najtechnickejší, alebo najslangovejší".

Keď sa v roku 1992 Rick Mascitti neformálne pýtal na meno jazyka, Stroustrup naznačoval, že to bolo len také vnuknutie a nikdy by si nemyslel, že by sa mohlo stať oficiálnym menom jazyka.

[úprava] Hello, world!

Tu je ukážka programu "Hello, world!":

#include <iostream>   

using namespace std;

int main()
{
    cout << "Hello, world!" << endl;
    return 0;  
}

[úprava] Filozofia

V knihe The Design and Evolution of C++ (1994), Bjarne Stroustrup popisuje niektoré pravidlá, ktoré použil pri návrhu C++. Poznanie týchto pravidiel pomáha porozumieť, prečo je tento jazyk je taký aký je.

  • C++ je navrhnutý, aby bol so statickou typovou kontrolou všeobecne orientovaný, ktorý má efektivitu a prenositeľnosť jazyka C.
  • C++ je navrhnutý tak, aby priamo a vyčerpávajúco podporoval niekoľko stýlov programovania (procedurálne programovanie, dátovú abstrakciu, objektovo-orientované programovanie a generické programovanie).
  • C++ je navrhnutý tak, aby dal programátorovi na výber. Dokonca mu umožňuje rozhodnúť sa nesprávne.
  • C++ je navrhnutý tak, aby bol kompatibilný s jazykom C, tak ako je to možné. Preto je možný hladký prechod z jazyka C.
  • C++ sa vyhýba črtám, ktoré by boli platformovo závislé, alebo orientované len na istú sadu problémov.
  • C++ je nevynakladá žiadnu réžiu na rozšírenia, ktoré v programe nepoužijeme.
  • C++ je navrhnutý tak, že funguje aj bez komplikovaného programovacieho prostredia.

[úprava] Objekty

Tento článok si vyžaduje úpravu, aby zodpovedal vyššiemu štandardu kvality!
Pozri aj stránky Ako upravovať stránku a Návody a štýl alebo diskusiu k článku.

[úprava] Ú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 najrýchlejší (samozrejme v rukách skúseného programátora).

[úprava] Zabalenie funkcionality

V C alebo asembleri 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 uvolnenie 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 hladajú.

V C++ môžeme vyrobiť objekt, ktorý toto všetko zprehladní a pekne čisto zabalí, takže hlavne pri častom znovupoužití nám zníži chybovosť drasticky.

Príklad

Chceme vytvoriť jednoduchú strielačku s obludami ktoré poletujú po obrazovke. Čo budeme potrebovať, sú obludy, čo sú vlastne sprity - takže obludu vyrobíme tak, že ju odvodíme od spritu, čo je v príklade už hotová trieda Sprite. Tiež potrebujeme scénu na ktorej sa to odohráva a tu vyrobíme tak, že ju odvodíme od okna, čo je hotová trieda Okno.

class Obluda : public Sprite //<-- odvodime od spritu
{
public:
 Obluda(Okno* pOkno): Sprite(pOkno)
 {
 }
 ~Obluda()
 {
 }
};

class Scena : public Okno //<-- odvodime od okna
{
public:
 int pridajObludu(Obluda)
 {
 }
};

[úprava] Pozri aj

Významné programovacie jazyky (viac)

Ada | ALGOL | APL | AWK | BASIC | C | C++ | C# | COBOL | Delphi | Eiffel | Fortran | Haskell | IDL | Java | JavaScript | Lisp | LOGO | ML | Objective-C | Pascal | Perl | PHP | PL/I | Prolog | Python | Ruby | SAS | Scheme | sh | Simula | Smalltalk | SQL | Visual Basic

Our "Network":

Project Gutenberg
https://gutenberg.classicistranieri.com

Encyclopaedia Britannica 1911
https://encyclopaediabritannica.classicistranieri.com

Librivox Audiobooks
https://librivox.classicistranieri.com

Linux Distributions
https://old.classicistranieri.com

Magnatune (MP3 Music)
https://magnatune.classicistranieri.com

Static Wikipedia (June 2008)
https://wikipedia.classicistranieri.com

Static Wikipedia (March 2008)
https://wikipedia2007.classicistranieri.com/mar2008/

Static Wikipedia (2007)
https://wikipedia2007.classicistranieri.com

Static Wikipedia (2006)
https://wikipedia2006.classicistranieri.com

Liber Liber
https://liberliber.classicistranieri.com

ZIM Files for Kiwix
https://zim.classicistranieri.com


Other Websites:

Bach - Goldberg Variations
https://www.goldbergvariations.org

Lazarillo de Tormes
https://www.lazarillodetormes.org

Madame Bovary
https://www.madamebovary.org

Il Fu Mattia Pascal
https://www.mattiapascal.it

The Voice in the Desert
https://www.thevoiceinthedesert.org

Confessione d'un amore fascista
https://www.amorefascista.it

Malinverno
https://www.malinverno.org

Debito formativo
https://www.debitoformativo.it

Adina Spire
https://www.adinaspire.com