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 kildeteksten.
[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] Standard bibliotek
Standard biblioteket i C++ hedder Standard Template Library (STL). Dette bibliotek er sammen med sproget for tiden i gang med en større revision, hvor dele af Boost biblioteket sandsynligvis vil blive inkluderet. Den nye C++ revision bliver kaldt C++0x.
STL indeholder en række klasse definitioner, templates, samt funktioner der til sammen implementere de mest almindelige programmeringsopgaver, så som sortering og søgning, tekst manipulation, fil håndtering og andre lignende ting.
Det er meget almindeligt at blande C++ kode med C biblioteker, så det medfører ingen problemer at C++'s standard bibliotek er forholdsvis småt, grundet den store masse af C biblioteker der er tilgængelige.

