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

Boost C++ Discussion :

shared_ptr vs optional


Sujet :

Boost C++

Vue hybride

3DArchi shared_ptr vs optional 12/09/2008, 15h09
loufoque shared_ptr est fait pour... 13/09/2008, 00h01
Mat007 Salut, C'est quoi le but... 13/09/2008, 15h56
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut shared_ptr vs optional
    Bonjour,
    A votre avis quelle solution vaut-il mieux utiliser: shared_ptr ou optional?
    Par exemple:
    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
    24
    25
    26
     
    class A
    {
    public:
       A(std::string P_strNom):m_strNom(P_strNom){
          std::cout<<m_strNom<<": Bonjour!"<<std::endl;
       }
       ~A()
       {
          std::cout<<m_strNom<<": Au revoir"<<std::endl;
       }
    protected:
       std::string m_strNom;
    };
     
    class B
    {
    public:
       B()
          :m_oShared(new A("Shared")),m_oOptional(boost::in_place("Optional"))
       {
       }
    protected:
       boost::shared_ptr<A> m_oShared;
       boost::optional<A> m_oOptional;
    };
    De la même façon, quelle serait la bonne pratique:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          m_oShared.reset(new A("Shared 1"));
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          m_oShared.swap(boost::shared_ptr<A>(new A("Shared 2")));

  2. #2
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Par défaut
    shared_ptr est fait pour partager la propriété d'un objet.
    Le(s) propriétaire(s) d'un objet sont responsables de sa durée de vie.

    Si ça n'a pas de sens d'avoir cela, shared_ptr n'est pas le bon outil. (même si en pratique, on l'utilise pour tout et n'importe quoi)

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Salut,

    Citation Envoyé par 3DArchi Voir le message
    A votre avis quelle solution vaut-il mieux utiliser: shared_ptr ou optional?
    C'est quoi le but exact ? Pourquoi pas une agrégation ou un std::auto_ptr par exemple ?

    Citation Envoyé par 3DArchi Voir le message
    De la même façon, quelle serait la bonne pratique
    La première :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
          m_oShared.reset(new A("Shared 1"));
    Sinon c'est voulu de mettre les données en protégé ? C'est pour dire qu'il peut y avoir une classe 'en-dessous' qui fasse n'importe quoi avec ?

    MAT.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [JVM][OPTIONS][OPTIMISATION]pc dédié à Java
    Par narmataru dans le forum Général Java
    Réponses: 7
    Dernier message: 16/04/2003, 17h12
  2. [Kylix] kylix3 : pb sur options de projet
    Par Arsene dans le forum EDI
    Réponses: 3
    Dernier message: 09/04/2003, 10h41
  3. [propriétés]Option Checked
    Par psl dans le forum Composants VCL
    Réponses: 6
    Dernier message: 22/08/2002, 08h07
  4. Parametrage des options de projet
    Par ares7 dans le forum EDI
    Réponses: 7
    Dernier message: 22/07/2002, 15h33
  5. Vous gerez comment les options d'un programme?
    Par n0n0 dans le forum C++Builder
    Réponses: 5
    Dernier message: 17/05/2002, 13h21

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