| prof. Nunzio Brugaletta |
C++:
programmazione e oggetti |
Una struttura è un insieme di variabili di uno o più tipi, raggruppate da un nome in comune. Anche i vettori sono collezioni di variabili come le strutture, solo che un vettore può contenere solo variabili dello stesso tipo, mentre le variabili contenute in una struttura non devono essere necessariamente dello stesso tipo.
Le strutture del linguaggio C++ coincidono con quelli che in Informatica sono comunemente definiti record. Il raggruppamento sotto un nome comune permette di rappresentare, tramite le strutture, entità logiche in cui le variabili comprese nella struttura rappresentano gli attributi di tali entità.
Per esempio con una struttura si può rappresentare l’entità dipendente i cui attributi potrebbero essere: reparto, cognome, nome, stipendio. In tale caso la definizione potrebbe essere:
struct dipendente{ string reparto; string cognome; string nome; float stipendio; };
La sintassi del linguaggio prevede, dopo la parola chiave struct, un nome che identificherà la struttura (il tag della struttura). Racchiuse tra le parentesi sono dichiarate le variabili che fanno parte della struttura (i membri della struttura). È bene chiarire che in questo modo si definisce la struttura logica dipendente, che descrive l’aspetto della struttura, e non un posto fisico dove conservare i dati. In pratica si può considerare come se si fosse definito, per esempio, com’è composto il tipo int: ciò è necessario per dichiarare variabili di tipo int.
Per mostrare l'uso elementare di una struttura, viene proposto un semplice programma che riceve da input i dati di un dipendente e mostra i dati ricevuti:
#include <iostream>
#include <string>
using namespace std;
namespace azienda{ /*1*/
struct dipendente{
string reparto;
string cognome;
string nome;
float stipendio;
};
}
int main()
{
azienda::dipendente dip1; /*2*/
cout << "Esempio di uso di una struttura in C++" << endl;
cout << “Inserire reparto in cui lavora il dipendente “;
getline(cin,dip1.reparto); /*3*/
cout << "Inserire cognome dipendente ";
getline(cin,dip1.cognome); /*3*/
cout << "Inserire nome ";
getline(cin,dip1.nome); /*3*/
cout << "Inserire stipendio ";
cin >> dip1.stipendio; /*3*/
cout << "Dati dipendente" << endl;
cout << dip1.reparto << endl; /*3*/
cout << dip1.cognome << endl; /*3*/
cout << dip1.nome << endl; /*3*/
cout << dip1.stipendio << endl; /*3*/
return 0;
}
La struttura viene definita, nella 1, nello spazio di nomi azienda.
Nella 2 viene dichiarata una variabile del tipo dipendente definito nello spazio azienda. La variabile dichiarata avrà i membri definiti nella struttura: ci sarà, per esempio, un cognome per il dipendente dip1.
L'accesso ai membri della struttura, come evidenziato nelle 3, avviene utilizzando l'operatore di appartenenza (il punto). In questo modo si può distinguere se, per esempio, il cognome si riferisce al dipendente dip1 o al dipendente dip2, se fosse stata dichiarata un'altra variabile di tipo dipendente con quel nome.
| http://ennebi.solira.org |
ennebi@solira.org |