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 :

Classe virtuelle pure et definition par macro (projet zippé inclu)


Sujet :

C++

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 72
    Points : 62
    Points
    62
    Par défaut Classe virtuelle pure et definition par macro (projet zippé inclu)
    Bonjour!


    J'essaie de faire un truc un peu bizarre, et ça ne marche pas :

    Dans un header :
    1. Je définis une classe virtuelle pure
    2. Je définis une macro qui empacte les définitions de méthodes
    (voir à la fin de YAMObjet.h)

    Dans les headers des autres classes (qui héritent de la première), j'écris la macro de définition des méthodes, et je les implémente dans le fichier .cpp

    Tous ça ne compile pas, si certains d'entre vous veulent mieux comprendre j'ai joint une archive ZIP contenant le projet visual 2005

    Merci de vos retour !
    Fichiers attachés Fichiers attachés

  2. #2
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    Salut,

    dans YamObjet tu déclares :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    virtual bool operator < ( const YAMObjet & other ) const =0 ;
    Mais ta macro est écrite comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bool operator < ( const T & other ) const ; \
    Du coup, dans YAMCoup, le T sera remplacé par YAMCoup, et donc la fonction ne correspondra pas à celle que tu tentes de redéfinir dans ta classe de base (les paramètres ne sont pas covariants en C++).

    Idem pour toutes tes autres méthodes qui prennent un T en paramètre.

    Il y a peut-être d'autres problèmes mais je ne suis pas allé plus loin.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    72
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Mai 2007
    Messages : 72
    Points : 62
    Points
    62
    Par défaut
    ouais merci bien

    de toute façon c'était bête comme truc. Je fais hériter tout de YAMObjet (au lieu de l'utiliser comme interface) maintenant, et c'est bon

    merci romain

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/10/2012, 20h25
  2. question sur les classes virtuelles pures
    Par deubelte dans le forum C++
    Réponses: 5
    Dernier message: 26/07/2010, 17h45
  3. Réponses: 17
    Dernier message: 29/07/2009, 18h12
  4. aide classe virtuel pure
    Par wasdaka dans le forum C++
    Réponses: 2
    Dernier message: 20/04/2009, 23h21
  5. Réponses: 8
    Dernier message: 16/10/2006, 13h28

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