Przejdź do głównej treści
eLearner.app
Moduł 4 · Lekcja 1 z 29/18 w kursie~12 min
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 ;:

Code
#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

Ćwiczenie#cpp.m4.l1.e1
Próby: 0Ładowanie...

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.

Ładowanie edytora...
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

Ćwiczenie#cpp.m4.l1.e2
Próby: 0Ładowanie...

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ść.

Ładowanie edytora...
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