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

SL & STL C++ Discussion :

[debutant] std::auto_ptr<>


Sujet :

SL & STL C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Par d�faut [debutant] std::auto_ptr<>
    Bonjour tout le monde,
    je m'inspire d'un programme pour utiliser sqlite3 et j'ai trouv� ceci dans le programme hors je ne vois pas du tout ce que cela veut dire. Si quelqu'un pouvait m'aider. :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     std::auto_ptr<TList> mpResults;
        std::auto_ptr<TList> mpFieldNames;
    Merci � vous

  2. #2
    Membre �m�rite Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    890
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 890
    Par d�faut
    C'est un template de la STL

    auto_ptr
    template<class T>
    class auto_ptr {
    public:
    typedef T element_type;
    explicit auto_ptr(T *p = 0) throw();
    auto_ptr(const auto_ptr<T>& rhs) throw();
    auto_ptr<T>& operator=(auto_ptr<T>& rhs) throw();
    ~auto_ptr();
    T& operator*() const throw();
    T *operator->() const throw();
    T *get() const throw();
    T *release() const throw();
    };
    The class describes an object that stores a pointer to an allocated object of type T. The stored pointer must either be null or designate an object allocated by a new expression. The object also stores an ownership indicator. An object constructed with a non-null pointer owns the pointer. It transfers ownership if its stored value is assigned to another object. The destructor for auto_ptr<T> deletes the allocated object if it owns it. Hence, an object of class auto_ptr<T> ensures that an allocated object is automatically deleted when control leaves a block, even via a thrown exception.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Par d�faut
    Euh d�sol� mais je ne comprends pas trop l'int�r�t alors si tu pouvais d�velopper un petit peu, merci.

  4. #4
    Membre �m�rite Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    890
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 890
    Par d�faut
    La STL, c'est la Standard Template Librairie. Regarde dans la FAQ ici

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    21
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 21
    Par d�faut
    Merci je comprends bien mieux maintenant

  6. #6
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    Attention � un truc, std::auto_ptr<> un pointeur dit intelligent tr�s particulier. Il n'est pas � comptage de r�f�rence, mais avec une s�mantique de d�placement.
    Copier un auto_ptr<> va transf�rer la responsabilit� du pointeur contenu vers le nouvel auto_ptr<> qui sert de receptacle.

    C'est tr�s utile pour �crire du code simple qui ne fuit pas en cas d'exception. Expliquer auto_ptr<> risquerait de prendre un peu pas mal de temps.
    Je t'invite � consulter les bouquin de Scott Meyers ou Herb Sutter. Pour ce dernier, tu trouveras des explications sur Guru Of the Week (GOTW).
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

  7. #7
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3

  8. #8
    Expert confirm�
    Avatar de Luc Hermitte
    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2003
    Messages
    5 296
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : D�veloppeur informatique
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 5 296
    Par d�faut
    Hum. J'avais oubli� que c'�tait dans la FAQ.
    Un mini commentaire pourrait �ventuellement �tre rajout� au fait que cela se pr�te bien aux fonctions "source" et aux fonctions "puit".

    Une fonction qui prend un auto_ptr<> en param�tre signale qu'elle s'empare de la responsailit� du pointeur et lib�rera la donn�e point�e. Assez pratique vu que doxygen a des tags [in], [out], [in,out] mais pas [sink], et qu'il faut parfois aller chercher loin dans du code ou une API pour savoir ce que fait un callback du pointeur qu'on lui donne...

    Une fonction qui renvoie un auto_ptr<> signale clairement qu'elle alloue un nouvel objet qu'il faudra penser � lib�rer.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne r�ponds � aucune question technique par le biais de ce m�dia. Et de toutes fa�ons, ma BAL sur dvpz est pleine...

  9. #9
    Expert confirm�

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 43
    Localisation : France, H�rault (Languedoc Roussillon)

    Informations professionnelles :
    Activit� : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par d�faut
    c'est not�

Discussions similaires

  1. [c++ --> java] std::auto_ptr<>
    Par nayaphykit dans le forum SL & STL
    R�ponses: 5
    Dernier message: 31/03/2008, 17h04
  2. [c++ --> java] std::auto_ptr<>
    Par nayaphykit dans le forum Langage
    R�ponses: 4
    Dernier message: 31/03/2008, 15h17
  3. [Débutant] r-mean(r)<2*std(r) --> graph ?
    Par Caro3995 dans le forum MATLAB
    R�ponses: 5
    Dernier message: 15/11/2006, 23h23
  4. std::auto_ptr et delete[]
    Par Herode dans le forum SL & STL
    R�ponses: 11
    Dernier message: 14/02/2006, 22h56

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