Ta članek se bo osredotočil na ustvarjanje enega najbolj zapletenih in nepogrešljivih programskih jezikov C ++. Njen ustvarjalec je programer Bjorn Straustrup, katerega biografija je model neverjetne predanosti.
Veliko zasluženih nagrad in nagrad, od katerih je ena - ime Grace Murray Hopper - prejela za razvoj jezika C ++.
C ++ programski jezik ima zgodovino, ki se je začela leta 1979, ko je nadarjeni programer delal za svoj doktorat. Jezik, s katerim je delal, je bil Simula, namenjen predvsem (po imenu) simulacijam. To je prvi jezik, ki podpira paradigmo objektno usmerjenega programiranja, za katero je Bjorn Stroustrup odkril, da je zelo koristen za razvoj programske opreme. Simula pa je bila prepočasna za praktično uporabo.
Kmalu zatem je Bjarne Straustrup začel z delom na »C z razredi« (C ++), ki naj bi bil, kot že samo ime, nadnaravnost jezika C. Njegov cilj je bil dodati objektno usmerjeno programiranje v jezik »C«. (ki je bil in ostaja jezik, ki si zasluži spoštovanje mobilnosti), brez žrtvovanja hitrosti ali nizke funkcionalnosti. Njegov jezik je vključeval razrede, osnovno dedovanje, vdelavo, privzete argumente funkcij in strogo preverjanje tipov jezikovnih funkcij "C".
Prvi prevajalnik "C z razredi" je bil imenovan Cfront in izpeljan iz prevajalnika C CPre. To je bil program, namenjen prevajanju kode "C z razredi" v navadno C. Zanimivo je omeniti, da je bil Cfront napisan predvsem v "C z razredi", zaradi česar je samozadosten prevajalnik (prevajalnik, lahko sestavite sami). Kasneje bo Cfront zaprt leta 1993, ko bo postalo težko vključiti nove funkcije, in sicer izjeme C ++. Kljub temu je imel Cfront velik vpliv na izvajanje prihodnjih prevajalnikov in na operacijski sistem Unix.
Leta 1983 se je ime jezika spremenilo iz C v C na C ++. Operater ++ v jeziku C je operater za povečanje spremenljivke. To daje nekaj vpogleda v to, kako je Bjorn Straustrup upošteval programiranje in jezik, ki ga je izumil z mnogimi novimi funkcijami. Najpomembnejše od teh so virtualne funkcije, preobremenitev funkcij, povezave s simbolom &, ključna beseda const in enovrstični komentarji, ki uporabljajo dve poševnici (to je funkcija, ki izhaja iz jezika BCPL).
Leta 1985 je bila knjiga Straustrup izdana pod naslovom »C ++ programski jezik«, prevedena v 19 jezikov in je prestala 4 ponatise. Istega leta je bil C ++ uveden kot komercialni izdelek. Jezik še ni uradno standardiziran, zato je knjiga zelo pomembna. Leta 1989 je bil jezik posodobljen tako, da je vključeval zaščitene in statične člane ter dedovanje iz več razredov.
Leta 1990 je bil izdan referenčni priročnik z oznako C ++. V istem letu se bo kot komercialni izdelek izdal prevajalnik Borland Turbo C ++. Turbo C ++ je dodal veliko dodatnih knjižnic, ki lahko pomembno vplivajo na razvoj C ++. Čeprav je bila zadnja stabilna izdaja Turbo C ++ leta 2006, se prevajalnik še vedno pogosto uporablja.
Leta 1998 je Odbor za standarde C ++ objavil prvi mednarodni standard za C ++ ISO IEC 14882: 1998, ki bo neuradno znan kot C ++ 98. Ocenjeno je bilo, da je referenčni priročnik z oznako C ++ močno vplival na razvoj standardov. Vključena je bila tudi standardna knjižnica s predlogami, ki je svoj konceptualni razvoj začela leta 1979. Leta 2003 se je odbor odzval na številne težave, o katerih je poročal v svojem standardu iz leta 1998, in jih ustrezno popravil. Spremenjeni jezik se imenuje C ++ 03.
Leta 2005 je odbor za standarde C ++ izdal tehnično poročilo (imenovano TR1), ki je podrobno opisalo različne funkcije, ki naj bi jih dodali najnovejšemu standardu C ++. Novi standard je bil neuradno imenovan C ++ 0x, saj naj bi se izdal do konca prvega desetletja. Nenavadno je, da novi standard ne bo izšel do sredine leta 2011. Pred tem je bilo izdanih več tehničnih poročil in nekateri prevajalci so začeli dodajati eksperimentalno podporo za nove funkcije.
Sredi leta 2011 je bil zaključen nov C ++ standard (imenovan C ++ 11). Projekt knjižnice Boost je imel pomemben vpliv na novi standard, nekateri novi moduli pa so bili pridobljeni neposredno iz ustreznih knjižnic Boost.
Nekatere nove funkcije so vključevale podporo za regularne izraze (podrobne informacije o regularnih izrazih najdete tukaj), obsežno knjižnico naključja, novo časovno knjižnico C ++, atomistično podporo, knjižnico standardnih niti (ki do leta 2011 ni bila na voljo v jeziku C ali C ++) nova sintaksa zanke, ki zagotavlja funkcionalnost, podobno ciklom foreach v nekaterih drugih jezikih, ključno besedo auto, nove kontejnerske razrede, boljšo podporo za združitve in sezname in možnosti za inicializacijo nizov divji vzorci.