Salut,
J'ai une classe est définie avec un fichier .h et .cpp et j'aimerais que tout autre fichier qui inclu ce .h ait accès à une instance globale de cette classe nommée InstanceGlobale. Il me semble que c'est le fonctionnement de std::cout dans iostream.
Donc voiçi brièvement le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 // .h class MaClass { MaClass(); ~MaClass(); ... }; extern MaClass InstanceGlobale;Ceci marche parfaitement, et je peux bien utiliser InstanceGlobale dans tous les fichiers incluant le .h. Cependant, un petit problème apparaît comme vous vous en doutez, le destructeur n'est pas appellé lors de la terminaison du programme. Hors ceci est génant parceque celui-ci effectue des opérations d'entrée sorties qui sont nécessaire au bon fonctionnement du programme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5// .cpp MaClass InstanceGlobale; ...
Ca me surprend un peu car il serait normal que le compilateur se charge de la destruction de l'objet puisqu'il se charge de sa construction.
donc avez vous une idée de comment puis-je faire pour que le destructeur soit bien appelé lors de la sortie ?
merci d'avance
Partager