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 - en del af Windows-kernen er skrevet i C++, og det samme gælder for Linux (begge dog hovedsageligt skrevet i C).

Det første C++ compiler hed CFRONT, og oversætte 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 features

C++ arver, i modsætning til det andet objektorienterede, C-baserede programmeringssprog, Objective-C sin objektorienterede syntaks fra Simula. C++ er også inspireret af ALGOL 68, Ada, CLU og ML. Fra C++ nedarver bla. Java og C# en del af deres features og anvender næsten samme syntaks.

C++ er standardiseret, både af ISO og ANSI

[redigér] "Hello World!" eksempel i C++

#include <iostream>

int main()
{
   std::cout << "Hello World!" << std::endl;
}

[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 skulle gøre det muligt at compilere C kode som C++ kode hvilket ville gøre det muligt umiddelbart at skifte et C projekt til C++. Et problem kan 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);