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:
E la classe vettore così: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; } };
L'overload della funzione [] non mi funziona, ovvero se per esempio nel main faccio:codice:class vettore:public studente{ protected: studente v[100]; studente *p; public: studente operator[](int i){ p=&v[i]; return *p; } //get };
Mi stampa 0codice:vettore vet; vet[0].setE(17); cout << vet[0].getE() << endl; system("PAUSE"); return EXIT_SUCCESS;
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?

Rispondi quotando

