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?