In questo caso non lo puoi ridefinire come metodo della classe Esame, dato che l'operando di sinistra non è un'istanza della classe Esame ma un oggetto istream. In sostanza, va bene quella definizione ma deve essere una funzione "libera".dove l'operatore >> è stato ridefinito nella classe Esame come:
Tra parentesi, far fare dell'output all'operatore >> non è una buona idea, dato che esso potrebbe anche essere usato per leggere da un file: in tal caso che senso avrebbe stampare quella roba sullo schermo? Se proprio vuoi (è leggermente improprio) potresti usare il metodo en.tie() per ottenere un puntatore all'ostream associato con l'istream che hai ottenuto (sarà &cout per cin, NULL per la maggior parte degli altri stream) ed eventualmente usare quello per l'output.

Rispondi quotando