Bonjour à tous,

J'ai créé une classe template, et j'ai mis dans le destructeur des std::cout afin de comprendre l'ordre d'appel du destructeur. Mais il s'avère qu'aucune phrase n'est affichée dans la console. Je ne comprends pas trop pourquoi.

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
27
28
29
30
31
32
33
34
35
template <typename T> class arbre
{  
    T data;
    std::vector<C*> fils;
public:
    arbre(){}
    arbre(T d):data(d){}
    // des méthodes
 
    void transformeEnVector(std::vector<arbre<T>*>& v)const
    {
        std::cout<<std::endl<<std::endl<<"blalalalalala"<<std::endl<<std::endl;
        v.push_back(this);
        if (fils.size()>0) 
        {
            for(int i=0; i<fils.size();i++) 
                fils[i]->transformeEnVector(v);
        }
    }
 
    // Destructor 
    ~ arbre()
    { 
        std::vector<arbre<T>*> v;
        transformeEnVector(v);
        std::reverse(v.begin(),v.end());
        for (int i=0;i<v.size();i++)
        {   
            std::cout<<"Dans le destructeur"<<std::endl;
            std::cout<<"Iteration "<<i<<std::endl;
            delete v[i];
        }
        std::cout<<std::endl<<"Je sors du destructeur"<<std::endl;
 
    }
Amicalement.