Bonjour � tous,

J'ai une classe Individu et une classe Menage. Un m�nage est compos� de plusieurs individus. Je stocke donc dans ma classe m�nage un vecteur d'adresses d'individus. Je voudrais pouvoir it�rer sur ce vecteur sans que l'utilisateur de ma classe puisse modifier directement mon vecteur mais il faudrait qu'il puisse appeler les fonctions membre de la classe Individu. Voici mon code actuel:
Classe Individu:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
 
class Individu
{
private:
    string _strName;
public:
    void setName(const string& name) { _strName = name; }
};
La classe Menage:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
typedef vector<Individu*>::iterator iteratorIndiv;
 
class Menage
{
private:
    vector<Individu*> _vctIndiv;
public:
 
    iteratorIndiv begin() { return _vctIndiv.begin(); }
 
    void ajouterIndiv (Individu& ind) { _vctIndiv.push_back(&ind); }
};
Donc en r�sum�, je voudrais que l'on ne puisse pas faire un truc du genre:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
 
Individu ind1, ind2;
Menage m;
m.ajouterIndiv (ind1);
*(m.begin()) = &ind2; //pas possible
mais que l'on puisse faire
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
 
Individu ind1;
Menage m;
m.ajouterIndiv (ind1);
(*(m.begin()))->setName("toto"); //possible de modifier les éléments du vecteur
C'est sans doute tout b�te mais l� je coince...