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 :

[C++] Fonction amie vituelle dans une classe ?


Sujet :

C++

  1. #1
    Membre averti Avatar de Bob.Killer
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    336
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 336
    Points : 332
    Points
    332
    Par défaut [C++] Fonction amie vituelle dans une classe ?
    Oyo !

    Voilà j'ai un petit pb avec un héritage et une surcharge d'opérateur << déclaré friend dans ma classe mère. je voudrais pouvoir la mettre virtual pour bien appeler le même opérateur surchargé dans ma classe fille, mais le compilateur n'apprécie pas j'utilise VS .NET.

    Pout ceux qui n'ont rien capté, du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    class Mere {
        // je veux insérer virtual ici :
        friend ostream & operator <<(ostream & flux, Mere & obj);
    };
     
    class Fille : public Mere {
        friend ostream & operator <<(ostream & flux, Fille & obj);
    };
    Merci d'essayer de m'aider

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 394
    Points : 473
    Points
    473
    Par défaut
    Une fonction amie n'est pas une fonction membre de la classe. Déclarer une fonction non-membre comme 'virtuelle' n'a pas de sens.

    La manière correcte de procéder est dans la FAQ.

  3. #3
    Membre averti Avatar de Bob.Killer
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    336
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 336
    Points : 332
    Points
    332
    Par défaut
    Re

    G regardé dans la faq, je n y ai malheureusement pas trouvé grand chose d'intéressant concernant mon pb

    J'ai donc suivi les conseils d'un pote pour palier à ce pb, je trouve pas ça joli mais bon faut s'en contanter...

    solution pour ceux que ça intéresse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    class Mere { 
        // fonction virtuelle possible !
        virtual ostream & affiche(ostream & flux);
        friend ostream & operator <<(ostream & flux, Mere & obj);
    }; 
     
    ostream & operator <<(ostream & flux, Mere & obj)
    {
         return affiche(flux);
    }
     
    class Fille : public Mere { 
        ostream & affiche(ostream & flux);
    };
    La fonction affiche étant surchargé en virtuelle elle appelera la bonne classe.

    ps : g tapé ça vite fais il peut y avoir des erreurs... faut juste comprendre le principe koi

  4. #4
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015

  5. #5
    Membre averti Avatar de Bob.Killer
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    336
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 336
    Points : 332
    Points
    332
    Par défaut
    bas merci de m indiqué franchement pourtant j avais cherché, mais y a tellement de trucs partout ... dsl

    mais bon la solution qu on m a donnée est là même c bête je la trouve pas très estéthique... enfin si c'est le seul moyen !

    merci de m avoir trouvé le lien c plus facil qd on connait je présume

  6. #6
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    Citation Envoyé par Bob.Killer
    merci de m avoir trouvé le lien c plus facil qd on connait je présume
    Oui. 8)

    (Et c'est effectivement La solution type à ce problème)
    Et n'oublie pas:

  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 : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Et si tu pouvais essayer de limiter le langage SMS, ce serait encore mieux


  8. #8
    Membre averti Avatar de Bob.Killer
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    336
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 336
    Points : 332
    Points
    332
    Par défaut
    J'écris pas en sms j'écris en abrégé... c'est parseque j'ai trop l'habitude de la prise de notes Mais je pense que mes posts ne sont pas illisibles, j'ai vu pire en langage sms mais j'essais de me corriger...

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    394
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 394
    Points : 473
    Points
    473
    Par défaut
    Neanmoins, partant du principe que c'est toi qui demande un coup de main, un petit effort est quand même envisageable non ?

  10. #10
    Membre averti Avatar de Bob.Killer
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    336
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 336
    Points : 332
    Points
    332
    Par défaut
    moi je ne rejette pas ceux qui me demande de l aide, même si ils utilise l'abrégé, ça serais un peu être étroit d'esprit... Je comprend parfaitement loulou24 de traquer et débusquer des postes incompréhensible, mais je ne pense pas avoir ce niveau tt de même... mais je peux me tromper !

  11. #11
    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 : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    On n'a jamais refusé de t'aider, on te fait simplement la remarque

    Le but n'est pas juste de débusquer les posts incompréhensibles, si on tente de limiter le langage SMS (ou abrégé -- faudra m'expliquer la différence), c'est parce que :
    • Avec une othographe correcte tu seras pris beaucoup plus au sérieux par les autres.
    • Les gens qui n'ont pas du tout l'habitude de ce genre d'abréviations peuvent les accepter moins facilement qu'un autre, même si ça reste compréhensible pour toi. Ecrire correctement c'est aussi faire preuve de respect envers ceux qui te lisent et tentent de te répondre.
    • Globalement on essaye de maintenir un forum pro, propre et convivial. Dans ce sens, un français correct est toujours plus apprécié.

    Par contre on va essayer de revenir au sujet initial, pour ceux qui souhaitent poursuivre cette discution merci d'utiliser les MP.


  12. #12
    Membre averti Avatar de Bob.Killer
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    336
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 336
    Points : 332
    Points
    332
    Par défaut
    Désolé, j'ai réagis à chaud sur les posts. Je m'excuse donc et essairais de mieux écrire à l'avenir.

    dsl +

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 03/01/2013, 10h00
  2. Réponses: 9
    Dernier message: 05/01/2010, 08h32
  3. Création fonction avec argument dans une classe
    Par Général03 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 30/06/2009, 09h57
  4. Fonction callback dans une classe
    Par julian_ross dans le forum MFC
    Réponses: 8
    Dernier message: 02/03/2004, 11h42

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