Comme il a été écrit here Qt jusqu'à maintenant a 8 classes pointeur intelligent specilized. On dirait que c'est tout ce dont vous aurez besoin. Toutefois, pour utiliser l'un de ces pointeurs intelligents, votre classe doit être dérivée de QObject, ce qui n'est pas toujours pratique. Existe-t-il d'autres implémentations de pointeurs intelligents dans Qt qui fonctionnent avec des classes arbitraires?Pointeurs intelligents dans Qt
Répondre
De nombreuses classes de Qt sont dérivées de QObject, et alors que certains de la construction dans les classes intelligentes pointeur sont liées à QObject (ou QSharedData), les modèles QSharedPointer et QScopedPointer semblent permettre des pointeurs sur quoi que ce soit.
Au-delà, vous trouverez quelques-uns smart pointer templates dans Boost:
- scoped_ptr - propriété unique simple d'objets simples. Non-recouvrable
- scoped_array - Simple propriété unique de tableaux. Non-recouvrable
- shared_ptr - Propriété d'objet partagée entre plusieurs pointeurs.
- shared_array - Propriété de groupe partagée entre plusieurs pointeurs.
- weak_ptr - Les observateurs non propriétaires d'un objet appartenant à shared_ptr.
- intrusive_ptr - Propriété partagée d'objets avec un nombre de références intégré.
C'est vrai. STL a aussi auto_ptr. La question concerne QT. – alexkr
Pratiquement tout en Qt utilisant QObject comme base, donc si vous voulez quelque chose qui fonctionne en dehors de cela, Boost un endroit pour aller chercher :) –
Wow, j'utilise encore C++ comme "C avec classes" (c'est C++ autour de 1990). Cela fonctionne, tous ces affreux pointeurs intelligents illisibles me rendent malade. – Lothar
- 1. Recherche par mots-clés intelligents
- 2. SQL pour remplacer les guillemets intelligents
- 3. Prise en charge AJAX dans les téléphones intelligents en 2009
- 4. Pointeurs de méthode dans Ruby
- 5. pointeurs Ajout
- 6. Initialiser un tableau de pointeurs vers des pointeurs
- 7. Consignes d'utilisation: pointeurs partagés par rapport aux pointeurs normaux
- 8. Fortran structures et pointeurs
- 9. Comparaison de pointeurs
- 10. Question concernant les pointeurs dans fscanf
- 11. Adressage et pointeurs dans l'objectif C
- 12. Pointeurs de fonction et rappels dans C
- 13. Pointeurs dans et hors des DLL
- 14. Pointeurs de fonction dans Inno Setup
- 15. pointeurs pour fonctionner
- 16. Pointeurs opaques en F77
- 17. Pointeurs et récursion
- 18. Incrémentation des pointeurs C
- 19. pointeurs et références question
- 20. Tableau de pointeurs
- 21. Fenêtre Internet Explorer dans Qt?
- 22. desktopdock ou stardock dans Qt
- 23. ID de thread dans Qt
- 24. Fenêtre Mac HUD dans Qt
- 25. Qt: Widget personnalisé dans QScrollArea
- 26. Vidéo dans l'application Qt S60?
- 27. charge libavcodec dans Qt-Projekt
- 28. Définition de pointeurs de fonction
- 29. Conversion d'identificateurs d'entier en pointeurs
- 30. Obj. C - Comprendre les pointeurs
En fait, pour la plupart de ces pointeurs que vous n'avez pas besoin de dériver de QObject, je ne pense pas. Il y a d'autres choses que vos classes devraient gérer, ou dériver d'autres classes Q, pour certaines d'entre elles. AFAIK, seul QPointer a besoin que votre classe soit dérivée de QObject. Cela étant dit, ils nécessitent la possibilité d'utiliser Qt dans votre projet. –