C++

Uit Wikipedia, de vrije encyclopedie

(Doorverwezen vanaf Programmeertaal cplusplus)
Ga naar: navigatie, zoeken

C++ is een programmeertaal gebaseerd op C.

In tegenstelling tot C is C++ een multi-paradigmataal, wat inhoudt dat er verschillende programmeerparadigma's gebruikt kunnen worden. De taal is ontworpen door Bjarne Stroustrup voor AT&T Labs, als verbetering van C. De naam is afkomstig van de programma opdracht "c++", wat in de taal C betekent: verhoog de waarde van de variabele c met 1.

Inhoud

[bewerk] Objectgeoriënteerd

De belangrijkste uitbreiding op C is de toevoeging van klassen (objectgeoriënteerd programmeren). De klasse-ondersteuning omvat onder andere

vb: virtual void Print();
vb: virtual void Print()=0;
vb: class Taxi: public Vervoermiddel { ... }

[bewerk] Templates

Een andere uitbreiding ten opzichte van C zijn templates (de basis van generiek programmeren). Een template of sjabloon is een functie of klasse die gebruik maakt van een abstract datatype.

Een voorbeeld is het berekenen van het gemiddelde van twee getallen. In plaats van aparte functies voor int, float en double kan een templatefunctie gebruikt worden:

template <class T>
T gemiddelde(T a, T b) {
    return (a+b) / 2;
}

Deze functie kan vervolgens voor alle datatypen gebruikt worden die + en / ondersteunen.

[bewerk] Andere uitbreidingen

Andere toevoegingen zijn onder andere:

[bewerk] De C++ standaardbibliotheek en STL

De standaardbibliotheek bevat alle functionaliteit van C, met daarbij een verzameling templates: de Standard Template Library (STL). Dit zijn algemene templates voor het beheren van containers als vectors, lists en maps.

[bewerk] Geen superset van C

In tegenstelling tot wat vaak wordt beweerd, is C++ geen zuivere superset van C. Niet alle geldige C-code is automatisch geldige C++-code. De meeste C-code zal probleemloos als C++ gecompileerd worden, maar er zijn kleine verschillen.

Een andere programmeertaal, Objective-C, is wel een superset van C.

[bewerk] Compilers

Er zijn verschillende compilers beschikbaar, zowel gratis als commercieel. Een aantal bekende zijn:

[bewerk] IDEs

[bewerk] Vergelijkbare talen

Andere object-georiënteerde talen die enigszins lijken op C++, zijn:

[bewerk] C++ voorbeelden

Een eenvoudig programma om "Hello World!" op het scherm te tonen, ziet er bijvoorbeeld zo uit:

#include <iostream>   // Dit regelt de standaard in- en uitvoer binnen C++
 using namespace std;  // maakt namespace std bruikbaar zonder de std:: kwalificatie
 
 int main()            // De uitvoering van het programma begint bij main()
 {  
     // Schrijf "Hello World!" naar de standard output stream cout (in de namespace std::)
     cout << "Hello World!" << endl;
 
     // de 0 vertelt het besturingssysteem dat het programma succesvol beëindigd is
     return 0;
 }

Een eenvoudig voorbeeld van een C++-consoleprogramma dat standaard invoer accepteert en uitvoer op het scherm toont, ziet er als volgt uit:

#include <iostream>     // voeg de I/O bibliotheek toe (voor std::cin en std::cout)
 #include <string>       // voeg de string bibliotheek toe (voor std::string)
 
 // cin, cout en string zijn onderdeel van de std:: namespace.
 using namespace std; // maakt namespace std bruikbaar zonder de std:: kwalificatie
 
 int main()
 {
     // declareer twee strings en een integer
     string strNaam;
     string strVoornaam;
     int nLeeftijd; 
 
     // vraag om voor- en achternaam
     cout << "Wat is uw voor- en achternaam? "; 
 
     // ontvang invoer van de standaard input stream en plaats die in de variabelen  strVoornaam en strNaam
     cin >> strVoornaam >> strNaam;
 
     // vraag om leeftijd
     cout << "Wat is uw leeftijd? ";
 
     // ontvang een regel van de standard input en zet die om naar een int
     cin >> nLeeftijd;
 
     // toon de ingevoerde gegevens
     cout << "Hallo " << strVoornaam << " " << strNaam << endl;
     cout << "U bent " << nLeeftijd << " jaar oud." << endl;
 
     // de 0 vertelt het besturingssysteem dat het programma succesvol beëindigd is
     return 0;
 }

Een voorbeeld van een C++-consoleprogramma dat de kracht van de STL-templates laat zien:

Met dit programma kun je een aantal getallen ingeven, die vervolgens na het ingeven van het eerste niet-getal gesorteerd zullen worden en op het console getoond.

#include <algorithm>
#include <vector>
#include <iostream>
using namespace std;
 
int main ()
{
  vector<int> v;
  istream_iterator<int> start (cin);
  istream_iterator<int> end;
  back_insert_iterator<vector<int> > dest (v);
 
  copy (start, end, dest);
  sort(v.begin(), v.end());
  copy (v.begin(), v.end(), ostream_iterator<int>(cout, "\n"));
}

[bewerk] Externe links

Wikibooks Wikibooks heeft een programmeercursus over dit onderwerp: Programmeren in C++


 
Persoonlijke instellingen