In questo caso può benissimo anche non essere friend perchè non accede ai membri privati della classe.
Il problema nasce quando scrivi:
codice:
return o << "Inizio :" << tel.Inizio() ; //...
Probabilmente in tempo.h non hai definito un inseritore (l'overloading di <<) e siccome Inizio() restituisce un oggetto tempo, lui non sa come visualizzarlo.