IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qt Discussion :

Utilisation des raw pointers sur les objets de type QT copy on write?


Sujet :

Qt

  1. #1
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut Utilisation des raw pointers sur les objets de type QT copy on write?
    Bonjour,

    Je m'intéresse depuis peu à QT, il m'a semblé que le fonctionnement de certains objets de base (QString) rendait leur retour et leur passage par copie adapté à la plupart des situations.

    A ce que j'ai compris, ces opérations se font d'une manière comparable aux shared_ptrs, avec un compteur de référence. Tout semble avoir été fait pour nous éviter de bosser avec des raw pointers et de trop se soucier de la fin de vie des objets.

    Mais pour un cas plus compliqué dans lequel j'ai besoin de partager un QVector que je souhaite laisser modifier par d'autres fonctions, il semble que si la fonction qui reçoit le QVector fait la moindre opération non const dessus, ceci créera un nouveau QVector et celui de l'appelant restera inchangé. C'est pratique mais comment faire si c'est pas ce qu'on veut?

    Je suppose que si je passe ces objets par référence ou par pointeur, je perds la sécurité quant à la destruction automatique si la référence est stockée et dépasse l'objet ou la méthode qui l'a créé en terme de durée de vie?

    En gros serait-ce une situation dans laquelle un shared_ptr<std::vector> est plus intéressant qu'un QVector malgré tout?

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 033
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 033
    Points : 13 968
    Points
    13 968
    Par défaut
    Tu as bien compris le principe
    Pour ce que tu veut faire, tu devrais regarder
    http://qt.developpez.com/doc/4.6-sna...eddatapointer/
    qui semble correspondre à ce que tu veut.
    Plus un peut de doc
    http://qt.developpez.com/doc/4.6-sna...plicit-sharing

  3. #3
    Expert éminent
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Points : 7 752
    Points
    7 752
    Par défaut
    Merci!
    Je reviendrai une fois que j'aurai consulté ces articles avec plus d'attention.

Discussions similaires

  1. Utilisation des listener sur les objets UML
    Par sanchou dans le forum UML
    Réponses: 2
    Dernier message: 11/08/2010, 16h48
  2. Mettre des textures et des couleurs sur les objets
    Par MaTtaW dans le forum PhysX et APEX
    Réponses: 5
    Dernier message: 31/07/2009, 17h42
  3. Réponses: 7
    Dernier message: 09/04/2009, 09h34
  4. Réponses: 8
    Dernier message: 12/07/2008, 12h29
  5. Ajouter des properties sur les objets handle
    Par lince102 dans le forum Interfaces Graphiques
    Réponses: 10
    Dernier message: 12/12/2007, 10h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo