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 :

Pointeur ou Copie avec le polymorphisme


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Juin 2003
    Messages
    223
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Juin 2003
    Messages : 223
    Par défaut Pointeur ou Copie avec le polymorphisme
    Bonjour,

    J'ai besoin d'aide sur le polymorphisme et la copie d'objet

    Pour résumer j'ai dans le header de ma librairie

    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
    27
    28
    29
    30
    31
    32
    33
     
    //Abstract (Generic class)
    class Alarm
    {
    public:
       Alarm(int type);
       virtual ~Alarm();
       virtual bool Process(Image *im)=0;
     
    private:
       int type;
    }
     
    Alarm *createAlarmLine(int x0, int y0, int x1, int y1);
    Alarm *createAlarmZone(Image *mask);
     
     
    class AlarmManager
    {
    public:
    	AlarmManager();
    	virtual ~AlarmManager();
    	bool Process(Image *im);
    	void Add(Alarm* pAlarm);
    	Alarm* Get(int index) const;
    	void Delete(int index);
    	int Size() const;
            void LoadFromXML(TiXmlNode *cnode);
            void WriteToXML(TiXmlNode *cnode) const;
     
    	private:
    		vector<Alarm *> vecAlarm;
    };

    et dans ma librarie j'ai qqc du genre:
    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
     
    class AlarmLine
    {
    public:
       AlarmLine(int type);
       virtual ~AlarmLine();
       virtual bool Process(Image *im);
     
    private:
       CvPoint P,Q;
    }
     
    class AlarmZone
    {
    public:
       AlarmZone(int type);
       virtual ~AlarmZone();
       virtual bool Process(Image *im);
     
    private:
      Image *mask;
    }
    J'utilise donc le polymorphisme pour stocker mes objets Alarm dans AlarmManager
    Ces derniers sont crées autre part dans mon code grâce aux fonctions createAlarmLine() et createAlarmZone().

    Le problème est que l'utilisateur ne doit pas deleter les pointeur crées par les fonctions createAlarm... tant qu'il sont utiliser par le manager.
    Mais a la fin du programme il faut que je delete ces pointeurs, si AlarmManager s'occupe de ça cela peut aussi être dangereux.
    J'ai pensé que la meilleur solution est de copier les pointeurs mais comme il y a le polymorphisme je ne sais pas vraiment comment faire.

    Est-ce que vous avez une idée pour ce genre de problème? Que me suggérer vous de faire?

  2. #2
    Expert confirmé

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Billets dans le blog
    3
    Par défaut
    Smart pointers ?

    Sinon, je dirai que c'est au manager de détruire les objets...

  3. #3
    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
    Pointeurs intelligents : excellent tutoriel de Loïc Joly. Tu devrais y trouver la réponse à tes questions.

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

Discussions similaires

  1. aide sur la copie avec critères
    Par shrekos007 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/05/2007, 21h50
  2. probleme de copie avec vbs
    Par tese84 dans le forum VBScript
    Réponses: 4
    Dernier message: 16/05/2007, 09h37
  3. Problème avec le polymorphisme
    Par Vitis_Alba dans le forum C++
    Réponses: 14
    Dernier message: 15/01/2007, 16h41
  4. Réponses: 14
    Dernier message: 09/05/2006, 15h23
  5. Réponses: 7
    Dernier message: 02/12/2005, 13h02

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