Je suis assez nouveau sur Qt et je me pose des questions sur certains éléments de base avec la gestion de la mémoire et la vie des objets. Quand dois-je supprimer et / ou détruire mes objets? Est-ce que tout cela est géré automatiquement?
Dans l'exemple ci-dessous, lequel des objets que je crée dois-je supprimer? Qu'arrive-t-il à la variable d'instance myOtherClasslorsqu'elle myClassest détruite? Que se passe-t-il si je ne supprime pas (ou ne détruit) pas du tout mes objets? Est-ce que ce sera un problème de mémoire?
MyClass.h
class MyClass
{
public:
MyClass();
~MyClass();
MyOtherClass *myOtherClass;
};
MaClasse.cpp
MyClass::MyClass() {
myOtherClass = new MyOtherClass();
MyOtherClass myOtherClass2;
QString myString = "Hello";
}
Comme vous pouvez le voir, c'est assez facile pour les débutants, mais où puis-je en apprendre davantage à ce sujet de manière simple?
(It does this by issuing signals, so it is safe even when you delete child manually before the parent.)-> Ce n'est pas la raison pour laquelle il est sûr. Dans Qt 4.7.4, les enfants QObject sont supprimés directement (viadelete, voir qobject.cpp, ligne 1955). La raison pour laquelle il est sûr de supprimer d'abord les objets enfants est qu'un QObject dit à son parent de l'oublier lorsqu'il est supprimé.