Lekcje modułu (1/2)
Klasy i Obiekty
Programowanie zorientowane obiektowo (OOP) to jeden z fundamentalnych paradygmatów w C++. Umożliwia ono grupowanie danych i funkcji w pojedyncze jednostki zwane klasami.
Klasa służy jako szablon (blueprint), podczas gdy obiekt jest konkretną instancją tej klasy.
Podstawowa składnia dla class
W C++ używa się słowa kluczowego class. W przeciwieństwie do innych języków, w C++ klasy muszą obowiązkowo kończyć się średnikiem ;:
#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;
}
Specyfikatory dostępu: public i private
Hermetyzacja (enkapsulacja) polega na ukrywaniu wewnętrznych szczegółów implementacyjnych obiektu i udostępnianiu tylko kontrolowanego interfejsu.
C++ zarządza tą kontrolą za pomocą specyfikatorów dostępu:
private: elementy dostępne tylko wewnątrz funkcji składowych samej klasy.public: elementy dostępne z dowolnej części zewnętrznego programu, która tworzy obiekt klasy.
Spróbuj sam
Zdefiniuj klasę Rectangle z dwoma prywatnymi składowymi całkowitymi width i height. Dodaj publiczną metodę void setDimensions(int w, int h) do ich ustawiania oraz metodę int getArea() zwracającą pole powierzchni (width * height). W funkcji main utwórz prostokąt, ustaw jego wymiary na 5 i 4, a następnie wypisz jego pole.
Pokaż wskazówkę
Użyj specyfikatorów dostępu `private:`i`public:`. Pamiętaj, aby zamknąć definicję klasy średnikiem `;` po nawiasie klamrowym.
Rozwiązanie dostępne po 3 próbach
Zdefiniuj klasę Counter z prywatną składową count zainicjalizowaną na 0. Dodaj publiczne metody void increment() i int getCount(). W main utwórz obiekt Counter, zwiększ go dwukrotnie i wypisz uzyskaną wartość.
Pokaż wskazówkę
W nowoczesnym C++ możesz inicjalizować składowe bezpośrednio w klasie: `int count = 0;`.
Rozwiązanie dostępne po 3 próbach