Direct naar de hoofdinhoud
Module 4 · Les 1 van 29/18 in de cursus~12 min
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 ;:

C++
#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.
  • private is het standaardtoegangsniveau voor lessen.
  • public: leden zijn overal buiten de klas toegankelijk.

Probeer het zelf

Oefening#cpp.m4.l1.e1
Pogingen: 0Laden…

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.

Editor laden…
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

Oefening#cpp.m4.l1.e2
Pogingen: 0Laden…

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.

Editor laden…
Toon hint

In C++ modern kun je beginnen met gegevens in de klas: `int count = 0;`.

Oplossing beschikbaar na 3 pogingen