Terug naar de inhoudsopgave

Les 9 – Objecten gebruiken

Gegevens bij elkaar houden

Tijdens het programmeren houden we ons bezig met gegevens en op deze gegevens voeren we allerlei bewerkingen uit. Om ons programma overzichtelijk en beheersbaar te houden, is het van belang dat we gegevens goed structuren. Daarom moeten we gegevens die bij elkaar horen ook bij elkaar houden. Hiervoor kunnen we gebruik maken van objecten.

Een object is een verzameling van gegevens die we bewerkingen uit kunnen laten voeren en die bepaalde eigenschappen bevat. Een voorbeeld van een object zou een cd kunnen zijn. De cd heeft bepaalde eigenschappen, zoals de titel, de artiest die de cd heeft opgenomen en een lijst met liedjes. Bovendien kunnen we de cd acties laten uitvoeren, zoals afspelen, pauzeren, nummer overslaan.

Members

In deze les kijken we niet hoe we zelf objecten kunnen maken, maar we zien wel hoe we bestaande objecten kunnen gebruiken. We hebben dus een object nodig dat met C++ is meegeleverd. Gelukkig hebben we al een keer met zo'n object gewerkt: de string.

Een string heeft bepaalde eigenschappen, zoals het aantal tekens in de string - ook wel de lengte van de string genoemd. We zeggen dat lengte een member van de string is. Members kunnen we opvragen. Het volgende programma vraagt de lengte van een string op.

#include <iostream>
#include <string>

using namespace std;

// het programma start hier
void main()
{
	// initialiseer een string
	string myString = "Dit is een string van 32 tekens.";
	
	// schrijf lengte van string naar scherm
	cout << myString.length();
}
	

Memberfuncties

Een object kan ook bewerkingen of acties uitvoeren. Het aanroepen van zulke bewerkingen en acties gaat net zoals het aanroepen van functies. In het volgende voorbeeld wordt een woord uit een string verwijderd met behulp van de opdracht erase. De eerste parameter geeft aan vanaf waar we tekens willen verwijderen, de tweede parameter geeft aan hoeveel tekens we willen verwijderen.

#include <iostream>
#include <string>

using namespace std;

// het programma start hier
void main()
{
	// initialiseer een string
	string myString = "Dit woord woord is te veel.";
	
	// verwijder een woord uit de string
	cout << myString.erase(4, 6);
}
	

Je ziet dat de bewerking wordt aangeroepen net als een functie, met dit verschil dat we nu aangeven op welk object de functie moet worden uitgevoerd. Op een object kun je alleen die functies aanroepen die voor dat object gedefiniƫerd zijn. We spreken daarom van memberfuncties.

Bewerkingen op strings

In onderstaande tabel zie je een overzicht van een aantal handige memberfuncties van string.

Memberfunctie Omschrijving Voorbeeld
append Voegt de opgegeven tekst toe aan de string.
string myString = "Een string vol tekens. ";
myString.append("En nog iets extra's. ");

// zo kan het ook
myString += "En nog meer.";

cout << myString;

Resultaat:

Een string vol tekens. En nog iets extra's. En nog meer.

at Vraagt het teken op dat op de aangegeven positie staat. at() begint te tellen bij 0, niet bij 1.
string myString = "Een string vol tekens.";
cout << "Het vijfde teken is: " << myString.at(4) << endl;

Resultaat:

Het vijfde teken is: s

erase Verwijdert tekst uit een string.
string myString = "Een string vol tekens.";
myString.erase(4, 2);
myString.erase(18, 1);
cout << myString;

Resultaat:

Een ring vol teken.

find Zoekt naar de opgegeven tekst in een string en geeft terug op welke positie de tekst gevonden is. Als de tekst niet gevonden wordt, geeft find de waarde string.npos terug.
string myString = "Een string vol tekens.";
cout << myString.find("vol") << endl;

// begin te zoeken vanaf teken 16
if (myString.find("vol", 15))
{
	cout << "Niet gevonden.";
}

Resultaat:

11
Niet gevonden

insert Voegt tekst in op de opgegeven plaats in de string.
string myString = "Een string vol tekens.";
cout << myString.insert(15, "met ");

Resultaat:

Een string vol met tekens.

length Vraagt het aantal tekens in een string op.
string myString = "Een string vol tekens.";
cout << myString.length();

Resultaat:

22

replace Vervangt tekst in een string vanaf de opgegeven positie.
string myString = "Een string vol tekens.";
cout << myString.replace(11, 3, "bestaand uit");

Resultaat:

Een string bestaand uit tekens.

substr Vraagt een gedeelte uit een string op.
string myString = "Een string vol tekens.";
cout << myString.substr(4, 6);

Resultaat:

string

Bij de les