Lektionen des Moduls (1/2)
Klassen und Objekte
Objektorientierte Programmierung (OOP) ist eines der grundlegenden Paradigmen in C++. Sie ermöglicht es, Daten und Funktionen in einzelnen Einheiten namens Klassen zusammenzufassen.
Eine Klasse fungiert als Bauplan (blueprint), während ein Objekt eine konkrete Instanz dieser Klasse ist.
Grundlegende Syntax für eine class
In C++ wird das Schlüsselwort class verwendet. Im Gegensatz zu anderen Sprachen müssen Klassen in C++ zwingend mit einem Semikolon ; enden:
#include <iostream>
#include <string>
class Player {
// Di default, tutti i membri di una classe sono privati
private:
std::string name;
int score = 0;
public:
// Metodi pubblici per accedere o modificare i dati privati
void setName(std::string newName) {
name = newName;
}
void addScore(int points) {
score += points;
}
void display() {
std::cout << name << " ha " << score << " punti!" << std::endl;
}
};
int main() {
Player p; // Creazione di un oggetto di tipo Player
p.setName("Marco");
p.addScore(15);
p.display();
return 0;
}
Zugriffsmodifikatoren: public und private
Die Kapselung besteht darin, die internen Implementierungsdetails eines Objekts zu verbergen und nur eine kontrollierte Schnittstelle nach außen freizugeben.
C++ regelt diese Kontrolle über Zugriffsmodifikatoren:
private: Mitglieder, auf die nur innerhalb der Elementfunktionen der Klasse selbst zugegriffen werden kann.public: Mitglieder, auf die von jedem externen Teil des Programms aus zugegriffen werden kann, das das Objekt instanziiert.
Probier es aus
Definiere eine Klasse Rectangle mit zwei privaten Ganzzahlelementen width und height. Füge eine öffentliche Methode void setDimensions(int w, int h) hinzu, um diese festzulegen, und eine Methode int getArea(), die die Fläche (width * height) zurückgibt. Erstelle im main ein Rectangle, setze die Maße auf 5 und 4 und gib dessen Fläche aus.
Hinweis anzeigen
Verwende die Zugriffsmodifikatoren `private:`und`public:`. Denke daran, die Klasse nach der geschweiften Klammer mit einem Semikolon `;` abzuschließen.
Lösung nach 3 Versuchen verfügbar
Definiere eine Klasse Counter mit einem privaten Element count, das mit 0 initialisiert ist. Füge die öffentlichen Methoden void increment() und int getCount() hinzu. Erstelle im main ein Counter-Objekt, inkrementiere es zweimal und gib den erhaltenen Wert aus.
Hinweis anzeigen
In einem modernen C++ kannst du Datenelemente direkt in der Klasse initialisieren: `int count = 0;`.
Lösung nach 3 Versuchen verfügbar