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.


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;
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
class Conteneur
{
    public:
        iterator   begin();
        const_iterator begin() const;
        iterator end();
        const_iterator end() const;
};
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.

Des avis ?