C++
Fra Wikipedia, den frie encyklopedi
C++ er et populært høynivå programmeringsspråk som er en utvidelse av språket C. C++ ble opprinnelig kalt «C with Classes» og ble utviklet og implementert av dansken Bjarne Stroustrup omkring 1983–85, som da jobbet for AT&T Bell Labs.
C++ er et multiparadigmespråk, med støtte for funksjonell programmering, objektorientert programmering (OOP), dataabstraksjon og generisk programmering. Populariteten skyldes både at det bygger på C og at det er implementert for de fleste operativsystem.
Innhold |
[rediger] Historie
Navnet C++ ble lansert av Rick Mascitti sommeren 1983. Det er et ordspill rundt forbedret C; i begge språkene så kan «C++» tolkes som «C pluss en».
Tidlige versjoner av «C with Classes» har vært i bruk siden rundt 1980. Den første bruken av C++ utenfor forskningsmiljøet var i juli 1983.
Etterhvert som språket ble populært, begynte man på en standariseringsprosess. Den amerikanske standariseringsorganisasjonen ANSI startet sitt arbeid i desember 1989. I juni 1991 så ble denne komiteen tatt opp av den internasjonale standariseringsorganisasjonen ISO. I april 1995 så kom det første offentlige utkastet til en standard. I 1998 så ble språket både en ISO- og ANSI-standard.
Standardiseringen av språket inkluderer også standardbiblioteket.
[rediger] Teknisk overblikk
I følge standarden så består C++ av to deler: Kjernespråket og standardbiblioteket. Biblioteket inkluderer det meste av det som tidligere var kjent som Standard Template Library (STL) og C-bibliotekene. Mange andre biblioteker eksisterer også for språket, men disse er ikke en del av standarden.
[rediger] Kjernespråket
Kjernespråket bygger på C. Egenskaper ved C++ som C ikke har inkluderer new- og delete-operatorene, bool som datatype, referanser, bruken av const, inline-funksjoner, default-argumeter, overlagring av funksjoner, navnerom, klasser (inkl. arv, medlemsfunksjoner, virtuelle funksjoner, abstrakte klasser, destruktorer og konstruktorer), overlagring av operatorer, ::-operatoren, unntakshåndtering, typeidentifikasjon under kjøring, definere typekonvertering.
C++ sjekker også typer strengere enn C i noen tilfeller.
Kommentarer som starter med to skråstreker ("//") var opprinnelig en del av C sin forgjenger BCPL, og ble tatt inn igjen i C++.
[rediger] Standardbiblioteket
I tillegg til C-bibliotekene med matematiske funksjoner og annet, så har C++ med STL i standarden. Her tilbys blant annet generelle lagringstyper (vector, list, array og annet), strenger, iteratorer (generelle pekere inn i en lagringstype), I/O og algoritmer. Generisk kode gjør at man kan skrive algoritmer som virker på en hvilken som helst slags lagringstype. For eksempel så virker de innebyggede sorteringsalgoritmene på både lister og vektorer.
[rediger] Hello World
#include <iostream>
int main(int argc, char** argv)
{
std::cout << "Hello, world!" << std::endl;
return 0;
}
Kommentert:
#include <iostream> // inkluderer standardheader iostream
int main(int argc, char** argv) // her starter programmet å kjøre
{
// cout og endl ligger i navnerommet std
// cout << "Hello, world!" : copy out, kopierer "Hello, world!" til standard output
// endl : manipulerer standard output slik at man får en ny linje
// forkast resultatet med ;
std::cout << "Hello, world!" << std::endl;
// programmet returnerer 0 for å antyde suksess
return 0;
}
[rediger] Bøker
- Bjarne Stroustrup: The C++ Programming Language, Addison-Wesley, ISBN 0-201-70073-5
- Bjarne Stroustrup: The Design and Evolution of C++, Addison-Wesley, ISBN 0-201-54330-3
- Nicolai M. Josuttis: The C++ Standard Library, Addison-Wesley, ISBN 0-201-37926-0
[rediger] Eksterne lenker
- Bjarne Stroustrups hjemmeside (engelsk)
- ISO sin offisielle side (engelsk)
- Kompilering av C/C++ under UNIX
[rediger] Guider/Tutorials
- C/C++ Programming (Engelsk) :: Veldig god for begynnere
- C++ Language Tutorial :: Også veldig god for begynnere (Engelsk)
Ada | Algol60 | Algol-68 | APL | Assembler | awk | BASIC | BETA | BLISS | C | C++ | C# | Caml | Cobol | Concurrent C | Delphi | Erlang | Forth | Fortran | Haskell | HyperTalk | INTERCAL | Java | Lisp | ML | Modula | Objective-C | OCaml | O'Haskell | Pascal | Perl | PHP | Pike | PL/I | Plankalkül | Prolog | Python | Ruby | Scheme | Simula | SML | Visual Basic

