Questo dovrebbe essere l'ultimo tassello mancante alla mia preparazione.
Facciamo un esempio semplice:
Ho la classe studenti (che per semplicità conterrà solo l'attributo protected età). Poi ho una classe Vettore che prevede le seguenti variabili membro:
- V di tipo puntatore, contiene il riferimento al vettore di studenti allocato dinamicamente
- Nelem, variabile di tipo intero, rappresenta il numero massimo di elementi del vettore
La classe Vettore fornisce le seguenti funzionalità:
- overloading delle funzioni di accesso []
- funzioni get per ciascuna delle variabili membro
Ho realizzato la classe studente in questo modo:
codice:
class studente{
protected:
int eta;
public:
//costr
studente(int e=0){
eta=e;
}
//gets
int getE() const { return eta; }
//sets
void setE(int e) { eta=e; }
};
E la classe vettore così:
codice:
class vettore:public studente{
protected:
studente v[100];
studente *p;
public:
studente operator[](int i){
p=&v[i];
return *p;
}
//get
};
L'overload della funzione [] non mi funziona, ovvero se per esempio nel main faccio:
codice:
vettore vet;
vet[0].setE(17);
cout << vet[0].getE() << endl;
system("PAUSE");
return EXIT_SUCCESS;
Mi stampa 0
Sia sui lucidi messi a disposizione dal prof che sul libro non c'è niente a riguardo, ne ho trovato qualcosa su internet.
Qualcuno sa come si fa?