C++: Forskelle mellem versioner

Fra Wikipedia, den frie encyklopædi
Content deleted Content added
m robot Tilføjer: sah:C++
No edit summary
Linje 16: Linje 16:


<pre>
<pre>
#include <iostream>
#include <iostream>
class hello
class hello
{
{

};
};


std::ostream& operator<< (std::ostream& o, const hello&)
std::ostream& operator<< (std::ostream& o, const hello&)
{
{
o << "Hej verden";
o << "Hej verden";
}
}


Linje 30: Linje 29:
{
{
hello h;
hello h;
std::cout << h << std::endl;
std::cout << h << std::endl;
return 0;
return 0;
}
</pre>
Hello World-programmet kan skrives på mange måder i C++. Det ovenstående eksempel er et der forsøger at illustrere brugen af klasser og streams.

Et mere klassisk (C-lignende) Hello World-program:
<pre>
#include <iostream>

using namespace std;

int main()
{
cout << "Hello World!" << endl;
return 0;
}
}
</pre>
</pre>
Hello world programmet kan skrives på mange måder i C++. Det ovenstående eksempel er et der forsøger at illustrere brugen af klasser og streams.


== Kompatibilitet med C ==
== Kompatibilitet med C ==

Versionen fra 18. jun. 2009, 14:41

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.

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 inden for computerspilsudvikling og andre steder, hvor man udvikler programmer, der kræver et højniveausprog 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 tjek af kildekoden.

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 andetsteds 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.

"Hello World!" eksempel i C++

#include <iostream>
class hello
{
};

std::ostream& operator<< (std::ostream& o, const hello&)
{
    o << "Hej verden";
}

int main()
{ 
    hello h;
    std::cout << h << std::endl;
    return 0;
}

Hello World-programmet kan skrives på mange måder i C++. Det ovenstående eksempel er et der forsøger at illustrere brugen af klasser og streams.

Et mere klassisk (C-lignende) Hello World-program:

#include <iostream>

using namespace std;

int main()
{ 
    cout << "Hello World!" << endl; 
    return 0;
}

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, at 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);

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 tilsammen 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 (C++ 10).

Derudover indeholder C++ hele standardbiblioteket fra C.

Det er meget almindeligt at blande C++ kode med C-biblioteker, hvilket gør den store mængde af C-biblioteker tilgængelige.