Probleme classe heritant vector : redéfinition erase()

Probleme classe heritant vector : redéfinition erase() - C++ - Programmation

Marsh Posté le 02-03-2006 à 20:47:12    

Bonjour à tous.
voici mon problème : je dois faire une classe héritant de vector et il me faut redéfnir la methode erase(iterator i).
en effet je reprend un code qui l'utilise n'importe comment il je veux controler les suppression sans changer l'ancien code
 
voici la classe Object3dvector.hpp

Code :
  1. #ifndef OBJECT3DVECTOR_HPP
  2. #define OBJECT3DVECTOR_HPP
  3. #include <vector>
  4. #include "../Geometry/Objet3d.hpp"
  5. #include <iterator>
  6. using namespace std;
  7. template <class T>
  8. class Object3dvector: public std::vector<T> {
  9. public:
  10.   Object3dvector();
  11.   ~Object3dvector();
  12.   //void erase(vector<T>::iterator pos);
  13.   void clear();
  14. };
  15. template <class T>
  16. Object3dvector<T>::Object3dvector()
  17. {}
  18. template <class T>
  19. Object3dvector<T>::~Object3dvector()
  20. {}
  21. /*template <iterator I> */
  22. /*template <class T>
  23. void Object3dvector<T>::erase(__gnu_cxx::__normal_iterator<T*, std::vector<T, std::allocator<T> > >& ){
  24.         std::cout << "----------------------------  appel effacement -------------" << endl;
  25.        // return erase(T);
  26. }*/
  27. template <class T>
  28. void Object3dvector<T>::clear(){
  29.         //std::cout << "----------------------------  appel clear -------------" << endl;
  30.         clear();
  31. }
  32. #endif


 
là ça passe mais j'ai laissé mes tentatives d'implantation de erase
en gros mon pb c'est comment arriver à déclarer un iterator<T> en param et sortie de erase.

Reply

Marsh Posté le 02-03-2006 à 20:47:12   

Reply

Marsh Posté le 02-03-2006 à 21:13:54    

typename pour dire que c'est un type (ton compilateur a besoin de le savoir vu qu'il ne connait pas T, alors pour ses types membres...)
 
deja reprojete via typedef (+ typename) les types membre de std::vector ca sera plus simple
et pas de 'using namespace std' dans un en-tete !


Message édité par skelter le 02-03-2006 à 21:14:12
Reply

Marsh Posté le 03-03-2006 à 15:55:24    

ok merci je vais voir ça ! :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed