Bonjour à tous,
A chaque projet, j'utilise un gestionnaire de mémoire pour lever les inattentions que l'on fait tous concernant les allocations mémoires.
Ce gestionnaire est classique, un include en dernière place des includes pour redéfinir les opérateurs new/delete/new[]/delete[], et un include à la fin du fichier pour le désactiver :
Le soucis c'est qu'avec Qt, comme on alloue mais qu'on laisse le moteur libérer la mémoire, il ne faut pas compter les "new" effectués pour l'IHM.
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 #include <vector> #include "Fichier1.h" #include "Fichier2.h" #include <utils/EnableMemoryManager.h> CMaClass::CMaClass() { } CMaClass::Fonction1() { } CMaClass::Fonction2() { } #include <utils/DisableMemoryManager.h>
Plus inquiétant, comment s'assurer qu'on a pas fait de new pour l'IHM mais en oubliant de connecter un parent et qui ne sera donc pas détruit par le moteur ?
A mon avis le mieux serai de faire des delete sur les composants graphique, même si Qt le gère tout seul (Qt détecte si on fait un delete pour ne pas qu'il en refasse un derrière)
Vous en pensez quoi ?
A bientôt
Partager