J'ai plusieurs problèmes pour implémenter ma classe d'itérateur et de conteneur, je vais commencer par celui-là :
Ma classe itérateur se sert d'un indice pour accéder à l'élément courant du conteneur.
Et ma classe Conteneur permet de renvoyer des Iterateur const ou non const :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 class Iterateur { public: // Construction d'un itérateur non initialisé Iterateur(); // Construction à partir d'un conteneur et de l'indice d'un élément du conteneur Iterateur( Conteneur * conteneur, size_t position ); ~Iterateur(); private: // Le conteneur Conteneur * m_conteneur; // Position courante dans le conteneur size_t m_position;
Lorsque j'implémente ma méthode begin() non const, je passe this dans le constructeur d'Iterateur que je renvoie, mais pour la méthode const, il faudrait que je passe par un const_cast<>, or je me dis que le const_cast montre que j'ai mal pensé la chose.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class Conteneur { public: iterator begin(); const_iterator begin() const; iterator end(); const_iterator end() const; };
Des avis ?
Partager