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 :

Classes abstraites sans méthode virtuelle pure


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut Classes abstraites sans méthode virtuelle pure
    Hello,

    Je souhaiterais faire une classe non instanciable.

    Apparemment, la seule façon de faire ça, c'est de créer un méhode virtuelle pure, et de la concrétiser dans les classes filles.

    Mais une fonction de même nom pour chacune des classes filles n'a pas de sens dans la hiérarchie de classe que je voudrais faire. Ce qu'elles ont en commun est déjà concrétisé dans la classe de base.

    Cela signifie-t-il que je doive créer une fonction virtuelle pure bidon, que je concrétise par une fonction vide dans chacune des classes filles ?

    Merci.

  2. #2
    Membre émérite Avatar de mchk0123
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    816
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 816
    Par défaut
    Tout dépend de ce que tu appelles "en commun". Est-ce le code ou le prototype des méthodes ?

    Car si tu as du code différent dans chaque classe fille, mais qui soient stockés dans une même méthode (prototype identique), alors cette méthode est une bonne candidate au titre de méthode virtuelle pure.

  3. #3
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Deux façons courantes :

    - Constructeur(s) en accès protégé
    - Destructeur virtuel pur (pas supporté par certains compilos grincheux)

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Non, je n'ai pas de méthode d'un prototype donné qui est commun aux classes filles.

  5. #5
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    je comprend pas pourquoi il n y a pas de methode sspecialiées (dans tes classes filles) definit de manière communes dans la classe mère.

    C est le propre du polymorphisme pourtant.

    Je pense que les methodes unique aux classes filles devrait etre utilisé dans les redefinitions des methodes communes de la classe mère (methode virtuelles pures).

  6. #6
    Membre éclairé Avatar de ZaaN
    Inscrit en
    Novembre 2005
    Messages
    819
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 819
    Par défaut
    cependant il n est pas possible de creer un classe abstraite sans au moins une methode virtuelle pure...

  7. #7
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Citation Envoyé par ZaaN
    cependant il n est pas possible de creer un classe abstraite sans au moins une methode virtuelle pure...
    Ca dépend de la définition de "abstraite" qu'on a. Celle qui semble être la bonne c'est "une classe non instanciable", donc dans ce cas les constructeurs protégés font l'affaire.

  8. #8
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Citation Envoyé par Laurent Gomila
    Ca dépend de la définition de "abstraite" qu'on a. Celle qui semble être la bonne c'est "une classe non instanciable", donc dans ce cas les constructeurs protégés font l'affaire.
    Oui, c'est une super idée ça... Je note!
    J'ai un peu le même problème, et ça peut rendre service.

    Thanks !

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/10/2012, 19h25
  2. Classe abstraite et méthodes virtuelles
    Par Daikyo dans le forum Langage
    Réponses: 10
    Dernier message: 16/11/2010, 15h50
  3. Classe abstraire sans méthode abstraite
    Par 0redd dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 20/08/2010, 23h42
  4. Réponses: 15
    Dernier message: 05/07/2007, 01h29
  5. Réponses: 14
    Dernier message: 17/11/2006, 19h17

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