Bonjour tout le monde,
prenons le bout de code suivant:
La sortie est:
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 #include <set> #include <iostream> using namespace std; struct Element { Element(int n):num(n){cout<<"new"<<endl;} ~Element(){cout<<"delete"<<endl;} int num; bool operator < ( const Element & elt ) const { return ( num < elt.num ); } }; int main() { multiset<Element> theSet; cout << "--> insert" << endl; theSet.insert( Element(1) ); cout << "--> clear" << endl; theSet.clear(); cout << "--> termine" << endl; return 0; }Nous voyons donc que:--> insert
new
delete
--> clear
delete
--> termine
-> lors de l'insertion, le destructeur est appelé
-> on a, en tout, 1 new et 2 delete
Comprenez-vous ce qu'il se passe? Est-ce normal?
Partager