Salve,
ho un problema relativo alla ridefinizione dell'operatore <<.La classe Segreteria ha come attributo privato un vettore di puntatori a Docente. Durante l'esecuzione del programma piuttosto che visualizzare i dati relativi al docente, visualizza un indirizzo.
codice:
ostream& operator<<(ostream& out,const Docente &d){
out << d.nome << " "<< d.cognome;
return out;
}
codice:
#ifndef SEGRETERIA_H
#define SEGRETERIA_H
#include"Docente.h"
#include"Studente.h"
#include"Materia.h"
#include"Verbale.h"
class Segreteria{
public:
Segreteria();
~Segreteria();
void addDocente();
void addStudente();
void addMateria();
void loadVerbale();
private:
Docente* doc[30];
Studente* stu[300];
Materia* mat[30];
Verbale* ver[50];
};
#endif
Implementazione metodo addDocente():
codice:
void Segreteria :: addDocente(){
string n,c;
cout << "Inserisci nome e cognome docente: ";
cin >> n >> c;
for(int i = 0; i < 30; i++)
if(doc[i]==0){
doc[i] = new Docente(n,c);
cout << (*doc[i]);
return;
}
}
output:
1)Aggiungi docente
2)Aggiungi studente
3)Aggiungi materia
4)Caricamento nuovo verbale
0) Esci
1
Inserisci nome e cognome del docente: a b
0x103d070
1)Aggiungi docente
2)Aggiungi studente
3)Aggiungi materia
4)Caricamento nuovo verbale
0) Esci
Avete qualche dritta sulla possibile risoluzione di questo errore?