2.1.10 Les fonctions d'initialisation des variables.

On les appel aussi "setteurs" car ils permettent d'initialiser les attributs d'une classe.

Dans notre cas, c'est assez simple, nous avons trois attributs différents, donc nous aurons trois setteurs :

1
2
3
void setNom(const std::string & nom);
void setAge(unsigned int age);
void setType(ShadokOption::Type type);

Et pourquoi on ne met pas de const pour l'age ou le type du Shadok ?

C'est juste parce-ce que ça ne gagne pas de temps, c'est aussi long de copier un nombre que de copier une référence de ce nombre, donc, autant faire simple.

Pour en revenir aux setteurs, comme nous voulons nous en servir pour initialiser les attributs de la classe, il faut pouvoir les appeler comme on veut, donc on met ces fonctions publiques.

Voilà ce que ça donne :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#ifndef __SHADOK_H__
#define __SHADOK_H__

#include <iostream>
#include <string>

namespace ShadokOption{
	enum Type{
		SHADOKDUHAUT,
		SHADOKDUBAS,
	};
};

class Shadok{
	public:
		Shadok();
		Shadok(const Shadok & shadok);
		~Shadok();
		
		void setNom(const std::string & nom);
		void setAge(unsigned int age);
		void setType(ShadokOption::Type type);
		
		void parler();
		void pomper();
		
	private:
		std::string p_nom;
		unsigned int p_age;
		ShadokOption::Type p_type;
};

#endif

C'est un début, nous allons faire le shadok.cpp, on va regarder comment tout cela fonctionne et on fera quelques améliorations.