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 :

Problème de pointeur dans un vecteur


Sujet :

C++

  1. #21
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Donc tu es en train de te fabriquer ton dynamic_cast à toi, plutôt que d'utiliser celui standard qui lui marchera dans tous les cas...

    Ce n'est pas dynamic_cast qui est douteux, c'est de faire un traitement différent selon le type de l'objet, alors que le but du polymorphisme est de gommer des différences d'implémentation sous une interface commune.
    +1. Voir même +100000.

    Ta méthode risque d'être moins efficace, et oblige à implémenter ta fameuse méthode dans toutes les classes que tu manipuleras dans ton "polymorphisme" (si l'on peut dire). Ca contraint des choses et c'est difficile à maintenir.
    Part dans l'extrême et fait tout hériter d'une classe Object, non ?

    Non plus sérieusement, si tu as _vraiment_ besoin de downcaster, il y a 95% (si ce n'est plus) de chances que tu ais mal conçu ton code, ta hiérarchie, le stockage, ...

    Mais bon, dynamic_cast est bon pour ce que tu veux faire, à moins qu'il y ait 1451 classes dans ta hiérarchie ...

  2. #22
    Membre éclairé
    Homme Profil pro
    Fondateur
    Inscrit en
    Octobre 2002
    Messages
    445
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Fondateur
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2002
    Messages : 445
    Par défaut
    Je vais vous détailler pourquoi je comptais utiliser le polymorphisme de cette manière.

    Disons que j'ai une classe qui accède à une ressource de données de différents types. Dans cette classe j'ai mis une méthode qui permet à partir d'une chaîne de caractères d'obtenir des éléments de cette ressource.

    Voulant être le plus général possible, je me suis dit je renvoie des objets de type Element la classe mère et derrière je m'occuperais de récupérer leur type exact.

    Mais effectivement en y pensant c'est peut être une mauvaise idée de faire ça.

    Peut être faudrait il mieux que j'ajoute un getter par type d'objet que je souhaite obtenir ce qui m'éviterait d'avoir à utiliser le polymorphisme dans ce cas de figure.

    Et puis le code sera plus simple à maintenir il suffira de rajouter des getters lorsque de nouveaux types seront à récupérer.

    Qu'en pensez vous ?

  3. #23
    Membre éclairé Avatar de befalimpertinent
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    561
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Avril 2007
    Messages : 561
    Par défaut
    Je ne sais pas si c'est ton cas mais bien souvent quand lorsqu'on est amener à "downcaster" c'est effectivement du à un problème de conception. Et il n'est pas rare que ça soit du à une mauvaise utilisation de l'héritage.
    L'héritage est parfois utilisé à tord pour éviter de réécrire du code (l'exemple typique est de faire hériter une pile d'un vector ). La plupart du temps il vaut mieux privilégier les relations de compositions, ou, comme ça a été dit : faire des classes disjointes.

    Maintenant je ne sais pas si cela s'applique à ton cas ...

  4. #24
    r0d
    r0d est déconnecté
    Membre expérimenté

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    4 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2004
    Messages : 4 331
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par sylsau Voir le message
    Qu'en pensez vous ?
    Je pense que c'est bien ainsi qu'il faut procéder

Discussions similaires

  1. Problèmes de redondances dans un vecteur
    Par le.nono dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 25/02/2012, 10h21
  2. Trie de pointeurs dans un vecteur
    Par toams69 dans le forum C++
    Réponses: 5
    Dernier message: 23/09/2009, 11h05
  3. Réponses: 6
    Dernier message: 17/07/2008, 19h10
  4. Problème sur un pointeur dans une structure
    Par steph_1 dans le forum Langage
    Réponses: 5
    Dernier message: 05/09/2007, 19h59
  5. Problème d'heritage dans vecteur
    Par coco-loco dans le forum Langage
    Réponses: 3
    Dernier message: 07/02/2007, 12h28

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