Bonjour,
J'ai un problème avec la fonction clear de la classe std::vector.
J'ai une classe virtuelle:
Et une autre classe:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 class IActiveObject { public: ///////////////////////////////////////////////////// // public operations ///////////////////////////////////////////////////// virtual ~IActiveObject(){}; virtual void addActiveContener(IActiveContainer *container)=0; virtual void removeActiveContener(IActiveContainer *container)=0; };
Problème: Quand je passe dans le constructeur de TActiveContainer, le assert se met en action et le programme plante.
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
17
18
19
20
21
22
23
24
25
26 template <class T> class TActiveContainer : public IActiveContainer { private: ///////////////////////////////////////////////////// // private associations ///////////////////////////////////////////////////// Vector<IActiveObject*> elements; IActiveContainer* src; public: ///////////////////////////////////////////////////// // public operations ///////////////////////////////////////////////////// inline TActiveContainer(); ...... }; template <class T> TActiveContainer<T>::TActiveContainer() { this->elements.clear(); this->src = NULL; assert(this->elements.size() != 0); }
Ce qui veut dire que le vecteur n'est pas vide!!!
Je ne comprend rien à tout ça. Une idée?
Partager