C++
Fra Wikipedia, den frie encyklopædi
C++ (udtales C plus plus) er et multiparadigmatisk programmeringssprog baseret på C med hvilket det fastholder næsten fuldstændig kompatibilitet. C++ er udviklet primært af Bjarne Stroustrup.
Indholdsfortegnelse |
[redigér] Historie
C++ blev oprindeligt 'opfundet' af danskeren Bjarne Stroustrup i begyndelsen af 1980'erne (oprindelig kaldt C with Classes), og blev i løbet af en årrække et af de mest populære programmeringssprog nogensinde.
I dag er C++ særligt populært indenfor computerspils udvikling og andre steder hvor man udvikler programmer der kræver et højniveau sprog og høj hastighed samtidig.
Den første C++ kompiler hed CFRONT, og oversatte C++ kode til en maskinafhængig C kode. Det regnedes for en rigtig compiler, da den i modsætning til præprocessorer udførte fuld syntaktisk og semantisk check af kildekoden.
[redigér] Objektorienterede egenskaber
C++'s objektorienterede syntaks er primært inspireret af Simula. Det andet C-baserede programmeringssprog, Objective-C, der konkurrerer med C++, får sin OOP syntaks andet steds fra. C++ er også inspireret af ALGOL 68, Ada, CLU og ML. Sprog som Java og C# er inspireret af C++, og får mange af deres features, samt syntaks herfra.
C++ er standardiseret, både af ISO og ANSI.
[redigér] "Hello World!" eksempel i C++
#include <iostream>
using namespace std;
int main ()
{
cout << "Hej verden! \n";
cin.get();
return 0;
}
[redigér] Kompatibilitet med C
Da Bjarne Stroustrup udviklede C++ lagde han stor vægt på at C++ skulle fungere som en udvidelse til C. Af denne grund er alle basale features identiske med C, fx operatorancinitet. Dette gør det muligt at kompilere C kode med en C++ kompiler, hvilket gør det er nemt løbende at porte et C projekt til C++. Et problem er dog at nogle implicitte konverteringsregler er ændret. I C er følgende udtryk tilladt:
int* i = malloc(sizeof(int) * 5); /* Implicit konvertering fra void* til int* */
I C++ kræver en sådan konvertering et explicit cast:
int* i = (int* ) malloc(sizeof(int) * 5);
[redigér] Standardbibliotek
Standardbiblioteket i C++ er forholdsvis lille. F.eks. indeholder det ikke faciliteter til flertrådning, grafiske brugergrænseflader eller netværk. Det forventes at brugeren vælger nogle passende biblioteker til at supplere med disse faciliteter, som f.eks. Trolltechs Qt.
Standardbiblioteket indeholder Standard Template Library (STL). STL indeholder en række klassedefinitioner, templates, samt funktioner der til sammen implementerer de mest almindelige programmeringsopgaver, så som sortering, søgning, tekstmanipulation, filhåndtering og andre lignende. Dette bibliotek er sammen med sproget for tiden i gang med en større revision, hvor bl.a. dele af Boost biblioteket sandsynligvis vil blive inkluderet. Den nye C++ revision bliver kaldt C++0x.
Derudover indeholder C++ hele standardbiblioteket fra C.
Det er meget almindeligt at blande C++ kode med C biblioteker, hvilke gør den store mængde af C biblioteker tilgængelige.

