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

Langage C++ Discussion :

appel d'une methodes classe fille de type classe mere


Sujet :

Langage C++

  1. #1
    Membre averti
    Étudiant
    Inscrit en
    Février 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2011
    Messages : 48
    Par défaut appel d'une methodes classe fille de type classe mere
    Bonjour, j'ai déjà trouver des documents qui traitent le sujet mais pas de solution à mon problème.
    J'ai un jeu d’échecs à terminer mais j'ai un petit souci.
    J'ai un échiquier qui a comme attribut un tableau de pieces.
    Ensuite j'ai une classe tour qui herite de piece.
    Lorsque j'affecte une tour a une case du tableau et qu'ensuite j'appelle une de ses methodes, c'est la methode definie dans la classe mere qui est appelee. Mais je ne comprends pas pourquoi (la methode a la meme signature dans les deux classes).
    Desole si je n'ai pas mis de code pour illustrer mon propos mais je suis sous windows et mon projet est sous debian, si vraiment l y a besoin je le posterai ulterieurement.
    Merci d'avance.

  2. #2
    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
    Y aurait-il une histoire de pointeur ?

    Du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Piece* maTour = new Tour();
    maTour.maFonction();

  3. #3
    Membre averti
    Étudiant
    Inscrit en
    Février 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2011
    Messages : 48
    Par défaut
    Oui effectivement, dans la classe echiquiers le tableau contient des pointeurs de type Pieces, les pieces elles-mêmes etant dans une classe joueur.

  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
    Dans ce cas, ta méthode n'est probablement pas déclarée comme virtuelle.

  5. #5
    Membre averti
    Étudiant
    Inscrit en
    Février 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2011
    Messages : 48
    Par défaut
    Non elle ne l'est pas, je dois la declarer virtuelle dans la classe mere ?
    Et je pensais que la declaration en virtuel se faisait pour les classes abstraites ?

  6. #6
    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
    Citation Envoyé par Mephista Voir le message
    Non elle ne l'est pas, je dois la declarer virtuelle dans la classe mere ?
    Et je pensais que la declaration en virtuel se faisait pour les classes abstraites ?
    Non. Ça, ça concerne les virtuelles pures.
    N'oublie pas de mettre le destructeur en virtuel, également.

  7. #7
    Membre averti
    Étudiant
    Inscrit en
    Février 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2011
    Messages : 48
    Par défaut
    Ok, je fais tout ca et je te tiens au courant, merci de ton aide.
    Edit: voila j'ai declare les methodes a redefinir en virtual dans ma classe mere ainsi que le destructeur, mais il m'indique une erreur a la compilation au niveau du destructeur: undefined reference to 'vtable for Piece'.
    Meme message d'erreur au niveau des constructeurs.

  8. #8
    Membre émérite Avatar de Steph_ng8
    Homme Profil pro
    Doctorant en Informatique
    Inscrit en
    Septembre 2010
    Messages
    677
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Doctorant en Informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 677
    Par défaut
    Bonjour,
    Juste une question : tu fais bien la différence entre « fonction virtuelle » et « fonction virtuelle pure » ?

    Au cas où...
    F.A.Q. C++: Que signifie le mot-clé virtual ?
    F.A.Q. C++: Qu'est-ce qu'une fonction virtuelle pure ?

  9. #9
    Membre averti
    Étudiant
    Inscrit en
    Février 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2011
    Messages : 48
    Par défaut
    Oui, je n'ai juste pas l'habitude de coder en c++ c'est mon prmeier projet.
    Par contre j'ai réussi à résoudre le problème, mais je ne sais absolument pas comment.
    En fait il n'y avait qu'une seule des méthodes à redefinir qui posait problème, je l'ai donc suppimmée puis réécrite

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

Discussions similaires

  1. Appel d'une methode de classe par message inopérant dans une dll
    Par Jacques Deyrieux dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 10/08/2010, 09h10
  2. appel d'une methode d'une autre classe
    Par mmanas dans le forum Débuter avec Java
    Réponses: 4
    Dernier message: 08/07/2008, 13h34
  3. Réponses: 7
    Dernier message: 01/02/2008, 15h16
  4. Réponses: 11
    Dernier message: 05/10/2006, 14h20
  5. faire appel à une methode d'une classe bean
    Par senediene dans le forum Struts 1
    Réponses: 1
    Dernier message: 24/08/2006, 11h13

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