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

C++ Discussion :

[d�butant] clone avec un vector


Sujet :

C++

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    192
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 192
    Par d�faut [d�butant] clone avec un vector
    Bonjour

    je suis d�butant en C++, je suis plustot JAVA et je me mets au C++:

    j'ai un soucie :
    est ce qu'il est possible de faire un clone d'un vecteur qui contient des pointeurs :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    vector<MaClass*> mesClass;
    et si oui comment est ce qu'il s'y prend.

    le but est d'avoir une copie de tous mes elements qui sont dans mon vecteur

    merci a bientot

  2. #2
    Membre �clair�
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    731
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 731
    Par d�faut
    Oui il est posible de faire un "clone".
    Pour faire une copie profonde de la valeur de tes objets point�s, il te faut faire un vecteur de pointeurs sur tes nouveux objets allou�s (si tu veux �videmment dupliquer des objets). Pour une copie profonde, il te faudra d�finir un constructeur de copie de MaClass pour dupliquer en profondeur les pointeurs �ventuels vers d'autres objets.
    Car il n'existe pas l'�quivalent de l'interface Cloneable en C++.
    Et surtout, attention � la lib�ration des objets allou�s.
    Bonne chance pour le passage de Java � C++, l'inverse est quand-m�me beaucoup plus simple

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    192
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 192
    Par d�faut
    merci

    je suis en train de faire une methode clone pour mon object, mais j'ai un probleme pour passer des String :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void Object::cloneAndInitialize(Object* &obj) 
    {	
        obj = new Object();
     
        obj->id = id;
     
        obj->type = type;
     
        obj->name = name;
    }
    avec:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    int id;
    int type;
    std::string name;
    std::string data;
    et mon probleme c'est que ca passe a la compile, mais que ca plante a l'ex�cution au passage du name.

    une id�e ?

  4. #4
    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
    As-tu r�ellement besoin de cloner ?

    Sinon:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    std::vector<TaClass*> clone(std::vector<TaClass*> const& rhs) {
        std::vector<TaClass*> res; 
        res.reserve(rhs.size());
        for (std::vector<TaClass*>::const_iterator b=rhs.begin(), e=rhs.end()
             ; b != e
             ; ++b
         ) {
             res . push_back( b-> clone() );
         }
        return res;
    }
    Si ta classe ne propose pas de clone(), un simple "new TaClass(*b)" suffira -- faut-il encore que ta classe dispose d'un constructeur de copie.

    Sinon, il me semble que boost::ptr_vector propose d�j� tout ce qu'il faut.
    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...

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    192
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 192
    Par d�faut
    merci a vous je m'en suis sorti

    a bientot

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [d�butant] Probl�me de Cast avec des vector
    Par syl55 dans le forum Langage
    R�ponses: 9
    Dernier message: 20/05/2009, 10h04
  2. [d�butant] Probl�me avec Vector !
    Par syl55 dans le forum Langage
    R�ponses: 12
    Dernier message: 14/05/2009, 15h57
  3. [Struts] logic:iterate avec un Vector
    Par laurentb dans le forum Struts 1
    R�ponses: 18
    Dernier message: 03/03/2004, 14h42
  4. [d�butant] Probl�mes avec CRegKey
    Par Pedro dans le forum MFC
    R�ponses: 4
    Dernier message: 10/11/2003, 15h28
  5. [D�butant] Lenteur avec TComPort
    Par PhDt76 dans le forum C++Builder
    R�ponses: 22
    Dernier message: 27/09/2003, 21h43

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