Modulelessen (1/2)
Klassen en objecten
Object-Oriented Programming (OOP) is een kernparadigma van C++. Hiermee kunnen gegevens en functies worden gegroepeerd in afzonderlijke entiteiten, genaamd klassen.
Een klasse fungeert als blauwdruk, terwijl een object een concreet exemplaar van die klasse is.
Basissyntaxis van een class
In C++ gebruik je het trefwoord class. In tegenstelling tot sommige andere talen moeten klassedefinities in C++ eindigen met een puntkomma ;:
#include <iostream>
#include <string>
class Player {
// By default, all members of a class are private
private:
std::string name;
int score = 0;
public:
// Public methods to access or modify private data
void setName(std::string newName) {
name = newName;
}
void addScore(int points) {
score += points;
}
void display() {
std::cout << name << " has " << score << " points!" << std::endl;
}
};
int main() {
Player p; // Creating an object of type Player
p.setName("Marco");
p.addScore(15);
p.display();
return 0;
}Toegangsspecificaties: public en private
Inkapseling bestaat uit het verbergen van de interne implementatiedetails van een object en het blootleggen van alleen een gecontroleerde interface.
C++ beheert deze controle met behulp van toegangsspecificaties:
private: leden zijn alleen toegankelijk binnen de lidfuncties van de klasse zelf.privateis het standaardtoegangsniveau voor lessen.public: leden zijn overal buiten de klas toegankelijk.
Probeer het zelf
Definieer een klasse met de naam Rectangle met twee privé-getalleden: breedte en hoogte. Voeg een openbare methode void setDimensions(int w, int h) toe om ze in te stellen, en een methode int getArea() die breedte * hoogte retourneert. Maak in principe een rechthoek, stel de afmetingen in op 5 en 4 en druk het gebied af.
Toon hint
Gebruik de toegangsspecificaties `private:`en`public:`. Vergeet niet om de klasse af te sluiten met een puntkomma `;` na de accolade.
Oplossing beschikbaar na 3 pogingen
Definieer een klasse met de naam Counter, waarbij het aantal privéleden is geïnitialiseerd op 0. Voeg openbare methoden void increment() en int getCount() toe. Maak in principe een Counter-object, verhoog het twee keer en druk de waarde af.
Toon hint
In C++ modern kun je beginnen met gegevens in de klas: `int count = 0;`.
Oplossing beschikbaar na 3 pogingen