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 :

[POO] Problème avec friend


Sujet :

C++

  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 764
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 764
    Points : 2 705
    Points
    2 705
    Par défaut [POO] Problème avec friend
    Hello,

    J'ai une classe A avec une fonction membre privée et statique.

    Je veux qu'une fonction d'une classe B puisse accéder à cette fonction.

    J'ai donc déclaré B comme friend dans A.h :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class A
    {
        friend class B;
        ....
        private:
            static void maFonction();
    }
    Mais lors de l'utilisation de la fonction de A par B :

    B::fonction_quelconque
    {
    A::maFonction();
    }

    le compilateur me dit que je ne peux pas accéder à la fonction parce qu'elle est déclarée privée.
    J'ai loupé quelque chose ?

    Merci.

    PS : en fait, je cherche à récupérer dans B l'adresse de la fonction de A :

  2. #2
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Le code complet reproduisant le probleme STP, car comme souvent la description textuelle et les extraits ne permettent pas de le deduire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    $ cat oodini.cpp 
    class A
    {
        friend class B;
    private:
        static void maFonction() {};
    };
     
    class B
    {
    public:
        typedef void (*fn)();
        fn f() {
            return &A::maFonction;
        }
    };
     
    int main()
    {
        B b;
        b.f()();
    }
    $ g++-4.2 -Wall -W -pedantic-errors oodini.cpp
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

Discussions similaires

  1. [POO] probléme avec "unserialize"
    Par dragonfly dans le forum Langage
    Réponses: 3
    Dernier message: 31/10/2007, 17h22
  2. [POO] Problème avec une classe + requêtes sql
    Par mithrendil dans le forum Langage
    Réponses: 2
    Dernier message: 30/04/2007, 08h27
  3. [POO] Problème avec $this de PHP4 à PHP5
    Par c4l3m dans le forum Langage
    Réponses: 19
    Dernier message: 16/02/2007, 09h48
  4. [POO] Problème avec setInterval/méthodes d'écriture
    Par Lpu8er dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/07/2006, 15h37
  5. [POO] Problème avec l'utilisation de classes.
    Par sekiryou dans le forum Langage
    Réponses: 3
    Dernier message: 16/02/2006, 18h54

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