2.8.1 Surcharger l'opérateur de la classe <<

Nous allons définir trois surcharges de cet opérateur pour initialiser les trois attributs de la classe Shadok.

Cet opérateur est un opérateur propre à la classe (ce n'est pas le même opérateur que l'opérateur de flux que nous avons déjà définit), il se définit donc comme l'opérateur =.

Voici les trois prototypes de cet opérateur (shadok.h) :

1
2
3
Shadok & operator << (const std::string & nom);
Shadok & operator << (unsigned int age);
Shadok & operator << (ShadokOption::Type type);

Et voici leurs implémentations (shadok.cpp) :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Shadok & Shadok::operator << (const std::string & nom){
	p_nom = nom;
	return *this;
}

Shadok & Shadok::operator << (unsigned int age){
	p_age = age;
	return *this;
}

Shadok & Shadok::operator << (ShadokOption::Type type){
	p_type = type;
	return *this;
}

Dans notre Shadok on peut faire cette surcharge car tout les attributs ont des types différents.

Et voilà, on fait un petit récapitulatif, et ont teste le tout.