Vai al contenuto
eLearner.app
Modulo 4 · Lezione 1 di 29/18 nel corso~12 min
Lezioni del modulo (1/2)

Classi e Oggetti

La Programmazione Orientata agli Oggetti (OOP) è uno dei paradigmi fondamentali del C++. Consente di raggruppare dati e funzioni in entità singole chiamate classi.

Una classe funge da blueprint (modello), mentre un oggetto è un'istanza concreta di quella classe.

Sintassi di base per una class

In C++, si utilizza la parola chiave class. A differenza di altri linguaggi, in C++ le classi terminano obbligatoriamente con un punto e virgola ;:

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;
}

Access Specifiers: public e private

L'incapsulamento consiste nel nascondere i dettagli di implementazione interna di un oggetto, esponendo solo un'interfaccia controllata.

C++ gestisce questo controllo tramite gli specificatori di accesso:

  • private: membri accessibili solo all'interno delle funzioni membro della classe stessa.
  • public: membri accessibili da qualsiasi parte del programma esterno che istanzia l'oggetto.

Prova tu

Esercizio#cpp.m4.l1.e1
Tentativi: 0Caricamento…

Definisci una classe Rectangle con due membri privati interi width e height. Aggiungi un metodo pubblico void setDimensions(int w, int h) per impostarli e un metodo int getArea() che restituisce l'area (width * height). Nel main crea un rettangolo, imposta le dimensioni a 5 e 4, e stampane l'area.

Caricamento editor…
Mostra suggerimento

Usa gli access specifier `private:`e`public:`. Ricorda di chiudere la classe con un punto e virgola `;` dopo la parentesi graffa.

Soluzione disponibile dopo 3 tentativi

Esercizio#cpp.m4.l1.e2
Tentativi: 0Caricamento…

Definisci una classe Counter con un membro privato count inizializzato a 0. Aggiungi i metodi pubblici void increment() e int getCount(). Nel main crea un oggetto Counter, incrementalo due volte e stampa il valore ottenuto.

Caricamento editor…
Mostra suggerimento

In C++ moderno puoi inizializzare i membri dato direttamente in classe: `int count = 0;`.

Soluzione disponibile dopo 3 tentativi