J'ai créer une liste chainé qui permet ce type d'ecriture :
Bon jusque la tout marche bien mais c'est biensur pas parce que ca marche que c'est bien.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 CListe<int *> plop; plop += new int(5); plop += new int(14); plop += new int(30); plop[1] = new int(89); std::cout << "il y en a " << plop.getNombre() << std::endl; plop.afficher(); //methode de test. qui affiche tout les elements a l'indirection des entiers.
Quand j'utilise l'operateur d'indexation je remplace la valeur du pointeur pour lui donner la nouvelle adresse seulement l'instance precedant n'est pas delete, et donc a chaque resaisie j'ai une instance en memoire que je ne controle plus et j'aimerais gerer cela.
voici le code de l'operateur :
Je ne peut pas delete l'anciene instance puis resaisir par le return systematiquement (par la reference) car certaines fois l'operateur est utilisé en lecture seulement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 T &operator[](unsigned int rang) { CCellule<T> *uneCellule = premier; for(int i = 0; i< rang;i++, uneCellule = uneCellule->getSuivant()); return *uneCellule->getPtInformation(); }
Toute idée est bienvenue.
Partager