| C++ er et objektorienteret programmeringssprog, som blev defineret i 1983 af aarhusianeren Bjarne Stroustrup. C++ er et "hybrid-sprog", nemlig både et
objekt orienteret og et klassisk proceduralt programmeringssprog. Den klassiske del er baseret på sproget C, og det objektorienterede er bevidst inspireret af verdens første objektorienterede
programmeringssprog - det norske SIMULA (vi har stadig en gaaammel SIMULA-manual stående i biblioteket på Karlebogaard). Bjarne kaldte sit nye sprog C++ (typisk datalog-humor ... '++' tæller
op med een!). Erfaringerne fra C var bl.a. at den største kilde til fejl i programmerne var ukontrolleret og ukontrollerbar brug af pointere samt et type-apparat, der var for svagt (således
er heltal i C ikke fastlagt med hensyn til antal benyttede bits - på een platform fylder et heltal 32 bits, på andre fylder det f.eks. 16 bits) C++ sproget giver flere muligheder for at
lave abstraktioner. Som i andre objektorienterede sprog giver C++ mulighed for at angribe det problem, der skal løses, på en facon, der ligger tættere på den måde, hvorpå mennesket normalt
danner begreber end "gammeldags" 3. generations-sprog (f.eks. C, Pascal o.s.v.). På C++ facon ser man verden, som det den består af - objekter (dem man kan sparke til) og klasser
(blue-prints/struktur-beskrivelser). På den mere kode-nære side gives der via de objektorienterede mekanismer mulighed for at pakke "de stygge pointere" ind i en mekanisme
kaldet en klasse. Denne klasse kan hjælpe med at skjule implementations-nære detaljer og få programmøren til at fokusere på klassens logiske egenskaber (hvorledes skal klassen benyttes set
i forhold til 'bruger vi en array eller en hægtet liste ?'). |
Sproget understøtter nedarvnings-begrebet, der giver mulighed for at skrive ny funktionalitet ved at genbruge allerede defineret kode. Endelig kan C++ noget ikke
mange andre sprog kan - sproget kan udvide funktionaliteten af operatorer som plus, minus, gange eller divider. Har man således defineret en klasse 'komplekse tal', kan man herefter gøre
programmet opmærksom på, at man nu kan sige c1 + c2 i stedet for at bruge funktionskald. Endeligt tager C++ begrebet type-abstraktion til sin fineste form - templates. En template er en
skabelon for en klasse - noget, der genererer en klasse, der genererer et objekt. En template kan også opfattes som en struktur, der tillader at man bruger en type som parameter-værdi. C++
understøtter: Klasser og objekter, Nedarvning (kode-genbrug), Templates, Overloading af funktioner og operatorer o.s.v. C++ blev ANSI-godkendt i den 28. september 1998. Sproget C levede
15 år før det blev ANSI-godkendt (fra 1972 til 1987) og sjovt nok skulle det også tage 15 år for C++ (fra 1983 til 1998) at blive ANSI-godkendt. Men årsagerne til de 15 år er meget
forskellige. For C's vedkommende var der ikke fokus på ANSI i de første mange år, hvor imod der for C++ var stort ANSI-fokus igennem alle årene, men sproget var (er) så komplekst, at det
var en meget sej kamp at blive enige om den endelige beskrivelse. |