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 :

Heritage C#, fonction polymorphe


Sujet :

C#

  1. #1
    Membre confirmé Avatar de Bryce de Mouriès
    Profil pro
    CPI
    Inscrit en
    Mars 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : CPI

    Informations forums :
    Inscription : Mars 2007
    Messages : 223
    Points : 576
    Points
    576
    Par défaut Heritage C#, fonction polymorphe
    Bonjour,

    J'ai un petit soucis de polymorphisme, je n'arrive pas à appeler la fonction de la grand mère directement.

    J'ai 3 classes, A, B et C avec chacune la fonction Polymorphe
    B hérite de A et C hérite de B
    A <- B <- C

    Dans les 3 classes la fonction Polymorphe est définie, sauf que dans B elle ne fait rien et je voudrais que celle de C appelle celle A directement.
    Si je fais base.Polymorphe dans C ça appelle celle de B, ce qui n'est pas bon, je voudrais faire en quelque sorte base.base.Polymorphe mais je ne sais pas comment donc je vous le demande ^^.
    En C++ y me suffisait de faire A:olymorphe, en C# je ne trouve pas

    Merci d'avance de m'aider.

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    salut

    et si tu essayais

    dans C;

    ((A)this).Polymorphe();

    Ca le ferait ?

    (J'ai pas testé )

  3. #3
    Membre confirmé Avatar de Bryce de Mouriès
    Profil pro
    CPI
    Inscrit en
    Mars 2007
    Messages
    223
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : CPI

    Informations forums :
    Inscription : Mars 2007
    Messages : 223
    Points : 576
    Points
    576
    Par défaut
    Presque, ça compile mais ça plante à l'exécution ^^
    Y doit pas apprécié qu'on cast le this.

  4. #4
    Membre actif
    Inscrit en
    Avril 2006
    Messages
    346
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 346
    Points : 252
    Points
    252
    Par défaut
    Presque, ça compile mais ça plante à l'exécution ^^
    Y doit pas apprécié qu'on cast le this.
    Bah non, normalement ça fonctionne.
    Quelle est l'erreur retournée ?

    ++

  5. #5
    Membre éclairé
    Inscrit en
    Octobre 2006
    Messages
    587
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Octobre 2006
    Messages : 587
    Points : 706
    Points
    706
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    ((A)this).Polymorphe();
    Cela ne marche pas parce que polymorphe est une méthode virtuelle donc onn appelle pas la méthode de la A mais celle de la C et on obtient une boucle infinie et ça déclenche une exception.
    Si ce serait du masquage ce serait bon mais la :/

    Par contre je ne vois pas de solution ici.

  6. #6
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Décembre 2008
    Messages : 256
    Points : 311
    Points
    311
    Par défaut
    Citation Envoyé par Bryce de Mouriès Voir le message
    Bonjour,
    Dans les 3 classes la fonction Polymorphe est définie, sauf que dans B elle ne fait rien...
    Ben ton problème est justement là.
    A quoi sert une fonction si elle ne fait rien ?
    En d'autres termes, si une fonction ne doit rien faire, elle ne doit pas exister.
    Visiblement, tu as besoin qu'elle appelle son parent, donc à mon avis elle devrait faire ça:

Discussions similaires

  1. Heritage et fonction
    Par Pito18 dans le forum VB.NET
    Réponses: 9
    Dernier message: 30/08/2010, 10h30
  2. Réponses: 6
    Dernier message: 23/08/2010, 12h46
  3. Heritage et partage des fonctions
    Par Ubum dans le forum C++
    Réponses: 29
    Dernier message: 09/05/2006, 16h57
  4. Fonction "polymorphe" ??
    Par rvzip64 dans le forum Langage
    Réponses: 7
    Dernier message: 03/03/2006, 15h36
  5. Fonction polymorphe et conteneur stl.
    Par Captain Fizzou dans le forum SL & STL
    Réponses: 2
    Dernier message: 29/11/2004, 19h13

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