🚀 Nuova versione beta disponibile! Feedback o problemi? Contattaci

Classi e Oggetti in C++

Codegrind TeamJul 22 2023

La Programmazione Orientata agli Oggetti (OOP) è un paradigma di programmazione che si basa sulla creazione e l’utilizzo di oggetti, che sono istanze di classi. In C++, le classi sono il principale strumento per implementare l’OOP. In questo articolo, esploreremo cosa sono le classi, come dichiararle, definirle, utilizzarle e alcune importanti nozioni di base sulla programmazione orientata agli oggetti.

Cos’è una Classe

Una classe in C++ è una struttura di dati che rappresenta un oggetto o una categoria di oggetti con caratteristiche simili. Le classi definiscono le proprietà (attributi) e i comportamenti (metodi) che gli oggetti di quella classe avranno. Le classi forniscono un modo per organizzare dati e funzioni in un’unica unità, consentendo la creazione di oggetti basati su di esse.

Perché Usare le Classi

Le classi sono ampiamente utilizzate in programmazione per diversi motivi:

  • Astrazione: Le classi consentono di creare tipi di dati personalizzati che astraggono i dettagli di implementazione e semplificano l’utilizzo dei dati.

  • Riutilizzo del Codice: Le classi consentono di definire una volta un modello di oggetto e riutilizzarlo in tutto il programma o in altri programmi.

  • Organizzazione dei Dati: Le classi organizzano dati correlati e metodi in un’unica entità, rendendo il codice più chiaro e modulare.

Dichiarare e Definire una Classe

Per dichiarare una classe in C++, utilizziamo la parola chiave class, seguita dal nome della classe e un blocco di definizione all’interno delle parentesi graffe {}.

class Automobile {
public: // Specificatore di accesso pubblico
    std::string marca;
    std::string modello;
    int anno;
};

Nell’esempio sopra, abbiamo dichiarato una classe chiamata Automobile con tre attributi: marca, modello e anno.

Proprietà e Metodi di Classe

Gli attributi di una classe sono spesso chiamati proprietà, mentre le funzioni associate alla classe sono chiamate metodi. I metodi definiscono il comportamento degli oggetti della classe.

class Automobile {
public:
    std::string marca;
    std::string modello;
    int anno;

    void mostraInformazioni() {
        std::cout << "Marca: " << marca << std::endl;
        std::cout << "Modello: " << modello << std::endl;
        std::cout << "Anno: " << anno << std::endl;
    }
};

Nell’esempio sopra, abbiamo aggiunto un metodo chiamato mostraInformazioni() che stampa le informazioni dell’automobile.

Costruttori

Un costruttore è un metodo speciale di una classe chiamato quando si crea un oggetto della classe. In C++, il costruttore ha lo stesso nome della classe ed è utilizzato per inizializzare gli attributi dell’oggetto.

class Automobile {
public:
    std::string marca;
    std::string modello;
    int anno;

    // Costruttore
    Automobile(const std::string& m, const std::string& mod, int a) {
        marca = m;
        modello = mod;
        anno = a;
    }

    void mostraInformazioni() {
        std::cout << "Marca: " << marca << std::endl;
        std::cout << "Modello: " << modello << std::endl;
        std::cout << "Anno: " << anno << std::endl;
    }
};

int main() {
    // Creazione di un oggetto 'auto1' con il costruttore
    Automobile auto1("Ford", "Focus", 2022);
    auto1.mostraInformazioni();
    return 0;
}

Sovraccarico dei Costruttori

È possibile definire più costruttori per una classe con parametri diversi. Questa tecnica è chiamata sovraccarico dei costruttori.

class Automobile {
public:
    std::string marca;
    std::string modello;
    int anno;

    // Costruttore con parametri
    Automobile(const std::string& m, const std::string& mod, int a) {
        marca = m;
        modello = mod;
        anno = a;
    }

    // Costruttore predefinito senza parametri
    Automobile() {
        marca = "Sconosciuta";
        modello = "Sconosciuto";
        anno = 0;
    }

    void mostraInformazioni() {
        std::cout << "Marca: " << marca << std::endl;
        std::cout << "Modello: " << modello << std::endl;
        std::cout << "Anno: " << anno << std::

endl;
    }
};

Conclusioni

Le classi sono un concetto fondamentale nella programmazione orientata agli oggetti in C++. Consentono di definire tipi di dati personalizzati con attributi e metodi. Comprendere come dichiarare, definire, utilizzare costruttori e sovraccaricare i costruttori è cruciale per sviluppare applicazioni orientate agli oggetti in modo efficace. Le classi forniscono un modo potente per organizzare, astrarre e riutilizzare il codice in modo modulare.