Bonjour,

J'ai un problème avec la fonction clear de la classe std::vector.

J'ai une classe virtuelle:
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;
};
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
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);	
}
Problème: Quand je passe dans le constructeur de TActiveContainer, le assert se met en action et le programme plante.

Ce qui veut dire que le vecteur n'est pas vide!!!

Je ne comprend rien à tout ça. Une idée?