| prof. Nunzio Brugaletta |
C++:
programmazione e oggetti |
Una struttura può occupare parecchio spazio in memoria centrale, in relazione alla quantità di membri contenuti nella struttura stessa e al tipo di membri. Ricorre spesso la necessità di usare puntatori a strutture: per esempio per passare ad una funzione una o più strutture. Utilizzando riferimenti invece di passare le strutture per valore si può ottenere una elaborazione più veloce: si evita, infatti, di ricopiare nelle variabili locali della funzione le strutture passate.
Tali necessità sono così frequenti che il linguaggio C++ mette a disposizione l’operatore -> (il trattino seguito dal simbolo di maggiore) per accedere ai membri della struttura.
Utilizzando l'allocazione dinamica della memoria, il programma di visualizzazione dei dati di un dipendente potrebbe diventare:
#include <iostream>
#include <string>
using namespace std;
namespace azienda{
struct dipendente{
string reparto;
string cognome;
string nome;
float stipendio;
};
}
main(){
azienda::dipendente *dip1; /*1*/ dip1 = new(azienda::dipendente); /*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*/ }
Nella 1 viene definito dip1 come puntatore ad una variabile di tipo dipendente.
Nella 2 si richiede uno spazio di memoria tale da poter conservare una struttura del tipo specificato.
L'accesso ai membri, come evidenziato nelle 3, avviene utilizzando l'operatore -> invece dell'operatore punto.
| http://ennebi.solira.org |
ennebi@solira.org |