Quelles sont les vies d'objets QT?
tels que: p> lorsque le socket sera détruit? Dois-je utiliser p> y a-t-il une différence avec: p> Je n'ai pas pu trouver une infromation profonde à ce sujet, tout Le commentaire ou le lien est la bienvenue. P> p>
3 Réponses :
Objets alloués avec Cependant, avec qt, la plupart des objets peuvent avoir un parent, que vous spécifiez comme un argument au constructeur. Lorsque le parent est supprimé, les objets enfants sont supprimés automatiquement. P> Nouveau code> doivent être publiés avec
Supprimer code>. p>
Lorsque vous essayez de supprimer, j'obtiens une erreur d'exécution (à propos de l'essai pour accéder au membre privé à Qhostadddress)
L'accès aux membres privés n'est pas coché au moment de l'exécution, uniquement pendant la compilation. Peut-être que c'est un crash? Ensuite, votre objet est probablement supprimé deux fois.
QT utilise des relations parent-enfant pour gérer la mémoire. Si vous fournissez l'objet code> qtcpsocket code> avec un parent lorsque vous le créez, le parent s'occupera de le nettoyer. Le parent peut être, par exemple, la fenêtre d'interface graphique qui utilise la prise. Une fois la fenêtre meurt (c'est fermé) la prise meurt. P>
Vous pouvez faire sans le parent, mais vous devez alors Personnellement, je vous recommande de coller à Idiomatic QT et d'utiliser la liaison de tous les objets dans les arbres parent-enfant. P> Supprimer code> l'objet manuellement. p>
Si vous ne voulez pas passer un parent pour une raison quelconque (car il n'y a pas de QObject où il est logique de posséder l'objet Socket), vous pouvez également utiliser un QsharedPoinger pour gérer la durée de vie. P>