2.6.4 Redéfinition de l'opérateur de flux entrant

C'est un peu la même chose que pour l'opérateur de flux sortant.

Voici le prototype (shadok.h) :

1
friend std::istream & operator >> (std::istream & in, Shadok & shadok);

std::istream est le flux entrant (in stream).

Et voici l'implémentation (shadok.cpp) :

1
2
3
4
5
6
std::istream & operator >> (std::istream & in, Shadok & shadok){
	int type;
	in >> shadok.p_nom >> shadok.p_age  >> type;
	shadok.p_type = (ShadokOption::Type)type;
	return in;
}

On ne peut pas initialiser un enum avec le flux entrant, il faut donc passer par un entier et le convertir après.