C++
je
programski jezik
op?e namjene i srednje razine s podr?kom za
objektno orijentirano programiranje
. Prvotno je razvijan u
Bell Labs
(laboratoriju telekomunikacijske tvrtke Bell) pod rukovodstvom
Bjarnea Stroustrupa
tijekom
1980-ih
, i to kao pro?irenje programskom jeziku
C
pa mu je originalno ime bilo "C with classes" (
eng.
C s klasama
). Zbog velike potra?nje za objektno orijentiranim jezicima te izrazitim sposobnostima istih, specifikacija programskog jezika C++ ratificirana je
1998.
kao standard
ISO/IEC 14882
.
Godine
1979.
Bjarne Stroustrup, danski ra?unalni znanstvenik iz Bell Labsa, zapo?eo je razvoj C++ jezika kojeg je prvo nazvao "C" s klasama koji je bio prete?a za C++. Poticaj za stvaranje novog programskog jezika proisteklo je iz njegovog rada na dokorskoj disertaciji u kojem se susreo s dilemom gdje je programski jezik Simula bio dobar za slo?ene programske projekte, dok je programski jezik BCPL bio brz ali je bio na jako niskoj razini da bude prakti?an za primjenu. Kada je Stroustrup po?eo raditi za
AT&Tove
Bell laboratorije, i kada je po?eo analizirati jezgru
operacijskog sustava
UNIX
za distribuirano ra?unarstvo. Za taj problem primijenio je svoje iskustvo iz svog doktorskog rada, tako ?to je po?eo dodavati produ?etke koje postoje u jeziku Simula za programski jezik C, kojeg je on rabio jer je bio dostupan, brz, i lako prenosiv na druge platforme. Ovaj produ?eni C programski jezik, prvo se zvao "C s klasama" no ?e formalno dobiti naziv C++ krajem
1983.
, uzimaju?i da je "++" znak za pove?avanje u programskom jeziku C. U listopadu
1985.
godine prva komercijalna distribucija jezika predstavljena je javnosti u knjizi
The C++ Programming Language
?iji je autor spomenuti Bjarne Stroustrup.
- Znakovni:
char
,
wchar_t
- Cijeli brojevi:
short
,
int
,
long
,
long long
- Brojevi s decimalnim zarezom:
float
,
double
,
long double
- Logi?ki (Boolean):
bool
- Praznine:
void
Veli?ine za podatke u bitovima za i386 (GCC)
Vrsta
|
Broj bita
|
char
|
8
|
short
|
16
|
int
|
32
|
float
|
32
|
double
|
64
|
U polju ispod prikazan je tipi?ni C++
Hello World
program.
[1]
#include
<iostream>
int
main
()
{
std
::
cout
<<
"Hello, world!
\n
"
;
return
0
;
}
Biblioteka standardnih rutina
[
uredi
|
uredi kod
]
Za potpuni ?lanak o biblioteci standardnih rutina za C++ pro?itajte ?lanak
biblioteka standardnih rutina za C++
Biblioteka standardnih rutina za programski jezik C++ sadr?i brojne klase i funkcije, koje su napisane u programskom jeziku C++ dio su ISO standarda za C++. Standardne rutine sadr?e osnovne rutine koje se uvr?tene u sam standard tako da bi ujedna?ilo osnovne operacije kao recimo pritsup datotekama u nekom operacijskom sustavu, standardne matemati?ke rutine, rad s posudama (matrice, vektori, stogovi, binarne, nizovima,...), te?inama (streams). Ono ?to je va?no napomenuti jest da su biblioteke standardnih rutina za C++ su u izvedbi rutina rabili najbolje dostupne algoritme, tako da je njihov rad garantiran da se izvede u najmanjem potrebnom vremenu. Isto tako postoje konvencije kako se pi?u standardne rutine i one moraju biti napisane prema principu biblioteke standardnih predlo?aka (Standard template library (STL)). Programeri imaju mogu?nost stvaranje svojih biblioteka rutina koje se rabe za razno razne funkcije kao recimo pristupa relacijskim bazama podataka. Moge takve bibilioteke rutina mogu?e je naknadno nabaviti na tr?i?tu bilo otvoreno, od programskih ku?a, ili raznih drugih tvrtki koje razvijaju sklopovlje ili
programsku podr?ku
.
Bez obzira na veliku prihva?enost programskog jezika C++ postoje mnoge osobe koje su autoritieti na podru?ju programiranja (na primjer
Linus Torvalds
,
[2]
Richard Stallman
,
[3]
i
Ken Thompson
[4]
) kritiziraju same sposobnosti koje su dostupne u programskom jeziku, i mnoge implementacije koje su opisane kao spore, nedovoljne, i siroma?no u ponudi standardnih biblioteka rutina, lo?e izvedbe kako predlo?ci rade, sakupljane sme?a, nedostatka refleskivnih sposobnosti. Zbog dodatnih zahtjeva za standardne biblioteke i na veli?inu zavr?nog binarnog programa C++ se koristi manje od programera koji zahtijevaju prijenosne programe koje se rabe u kriti?nim aplikacijama.