L'idea di una struttura è quella di raggruppare una raccolta di variabili in un singolo contenitore. Per esempio. se hai tre coordinate
int x;
int y;
int z;
potresti volerli vedere come un'unità di dati e raggrupparli insieme:
struct point
{
int x;
int y;
int z;
};
Puoi vedere questo come un modo per modulare i tuoi dati.
Ora puoi definire le variabili che contengono tutti e tre i valori in una unità:
struct point p1, p2;
Nella programmazione procedurale, hai procedure o funzioni che manipolano i dati e, in particolare, le strutture, ad es.
void shiftX(struct point *p, int offset);
Puoi chiamare la funzione su una struttura passandola come argomento:
shiftX(&p1, -10);
Il passaggio dalle strutture alle classi consiste nel dire che le procedure / funzioni devono essere raggruppate insieme ai dati in unità: come le strutture classificano le entità che hanno la stessa struttura, le classi classificano le entità che hanno la stessa struttura e le stesse operazioni.
Quindi ora puoi scrivere:
class Point
{
public:
void shiftX(int offset);
int x;
int y;
int z;
};
e poi:
Point p;
...
p.shiftX(-10);
In questo modo è più facile raggruppare le operazioni che funzionano sullo stesso tipo di dati. Per esempio. puoi raggruppare tutte le operazioni che agiscono sui punti
nella definizione della classe, invece di averli sparsi sul tuo codice come
funzioni che hanno uno o più parametri di tipo punto.
Inoltre, puoi perfezionare sia la struttura che il comportamento usando l'ereditarietà.
Riassumere: le strutture sono un concetto che consente di organizzare / modulare i dati. Le classi consentono di organizzare / modulare sia i dati che le operazioni.