Linguaggio C++

Introduzione

Introduzione alle struct in C++: cosa sono, a cosa servono e come si dichiarano.

Introduzione alle Struct in C++


In C++ una struct (abbreviazione di structure) è un tipo di dato composto che permette di raggruppare più variabili di tipo diverso sotto un unico nome.

È molto utile quando dobbiamo rappresentare un oggetto reale che ha più caratteristiche (es. uno studente, una stanza, un libro...).


Motivazione: il problema delle variabili separate

Supponiamo di voler memorizzare i dati di uno studente:

string nome;
int eta;
float media;

Se dobbiamo gestire più studenti, servirebbero tre array separati:

string nomi[30];
int eta[30];
float medie[30];

Questo approccio è scomodo e può generare errori (i dati di uno stesso studente sono sparsi in array diversi).


Soluzione: usare una struct

Con una struct possiamo racchiudere tutti i dati di uno studente in un’unica entità logica:

struct Studente {
    string nome;
    int eta;
    float media;
};

Ora possiamo creare una variabile che rappresenta un singolo studente:

Studente s1;

E accedere ai campi con l’operatore punto .:

s1.nome = "Marco";
s1.eta = 17;
s1.media = 7.8;

cout << s1.nome << " (" << s1.eta << " anni) - Media: " << s1.media;

Output:

Marco (17 anni) - Media: 7.8

Array di struct

Possiamo creare un array di struct per rappresentare una classe intera:

Studente classe[25]; // 25 studenti

Ogni elemento dell array rappresenta uno studente completo (nome, età e media).


Esempio completo

#include <iostream>
#include <string>
using namespace std;

struct Studente {
    string nome;
    int eta;
    float media;
};

int main() {
    const int N = 3;
    Studente classe[N];

    // Inserimento dati
    for (int i = 0; i < N; i++) {
        cout << "Inserisci nome dello studente " << i+1 << ": ";
        cin >> classe[i].nome;
        cout << "Età: ";
        cin >> classe[i].eta;
        cout << "Media: ";
        cin >> classe[i].media;
    }

    // Stampa riepilogo
    cout << "\n--- Elenco Studenti ---\n";
    for (int i = 0; i < N; i++) {
        cout << classe[i].nome << " (" << classe[i].eta << " anni) - Media: " << classe[i].media << endl;
    }

    return 0;
}

Spiegazione

  • La struct Studente definisce il modello di uno studente.
  • La variabile classe è un array di 3 studenti.
  • Ogni studente ha i propri campi (nome, eta, media).
  • Si accede ai campi con la notazione variabile.campo.

Vantaggi dell uso delle struct

  • I dati collegati rimangono insieme in un’unica entità.
  • Il codice è più leggibile e organizzato.
  • È più facile estendere la struct aggiungendo nuovi campi (es. indirizzo o sesso).
  • Le struct sono la base per comprendere le classi e la programmazione orientata agli oggetti.

Le struct sono quindi il primo passo per imparare a modellare oggetti reali in C++.