C++

C++ jezik je evolucija C jezika rođenog oko 1980-ih, zadržavajući njegove temeljne značajke i dodajući koncepte objektno orijentiranim jezicima.

U C++ jeziku, jačine C jezika su zadržane, posebno:

1. zadržava gotovo apsolutnu kompatibilnost s C, od koje nasljeđuje sintaksu i semantiku za uobičajene konstrukcije, kao i fleksibilnost i snagu

2. proširuje značajke C, djelomično ispravljajući nedostatke svog prethodnika

3. omogućuje jednostavno izvoz aplikacija u druge sustave

Zbog gore opisanih mogućnosti, C++ jezik predstavlja samostalni jezik neovisan o C i ubraja se među srednje kvalitetne jezike.

Konkretno, uvođenjem predložaka i razreda C++ postaje višeparadigmatski jezik.

Poboljšanja jezika u odnosu na C bila su:

• Komentari: C++ uvodi graničnik "komentar do kraja linije", zadržavajući uporabu graničnika  /* and */

• Naziv enumeracija: naziv enumeracija je naziv vrste.Ova mogućnost pojednostavljuje zapis jer ne zahtijeva korištenje kvalifikacijskog popisa ispred naziva vrste enumeracije

• Nazivi klasa: naziv klase je naziv vrste. Ovaj konstrukt ne postoji u C. U C++ nije potrebno koristiti kvalifikatorsku klasu ispred imena klase.

• Skupna deklaracija: C++ omogućuje uporabu deklaracija unutar polja i iza oznaka. Ta mogućnost omogućuje da se identifikator deklarira bliže točki u kojoj se prvi put upotrebljava. Moguće je deklarirati indeks petlje unutar istog

• Operator kvalifikacije vidljivosti: operator kvalifikacije vidljivosti (zvan opseg) novi je operator koji se koristi za rješavanje sukoba naziva. Ako funkcija ima lokalnu varijablu deklaracije varijable i postoji globalna varijabla, textbf označni podatak::varijabla omogućuje pristup globalnoj varijabli čak i iz opsega vidljivosti lokalne varijable. Obrnuto nije moguće

• Specifikator konsta: const specifikator vam omogućuje zaključavanje vrijednosti varijable unutar njenog polja vidljivosti. Također je moguće zaključati podatke adresirane na varijablu pokazivača

• Preopterećenje funkcija: u C++, više funkcija može koristiti isti naziv; podjela se temelji na broju i vrsti parametara

• Standardne vrijednosti parametara funkcije: moguće je pozvati funkciju koristeći manje parametara od deklariranih. Parametri koji nedostaju zauzet će standardne vrijednosti

• Operatori novi i izbrisati: novi i izbrisati operatori ostaviti programer u kontrolu dodjele i preraspodjele memorije hrpe