Passer en paramètre un type défini dans une classe vers une fonction d'une autre

Signaler
Messages postés
8
Date d'inscription
vendredi 3 octobre 2003
Statut
Membre
Dernière intervention
23 juillet 2010
-
Messages postés
3819
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 septembre 2020
-
Bonjour à tous,


J'ai une question à laquelle je ne trouva pas de solution.

Je veux pouvoir passer un paramètre dans une fonction de la classe C un paramètre de type défini dans la classe B (cf exemple).
Comment faites-vous?

Merci.

class B: public A
{
    public:
      enum enScrollingMode
      {
         ScrollingNone=0,
         ScrollingLeft,
         ScrollingRight
      };

      enScrollingMode enCurrScrollingMode;
};

class C : public A
{
    public:
        void vSetScrollingMode(int8u i8uField,enScrollingMode CLabel::enCurrScrollingMode);
};


Johanboy

3 réponses

Messages postés
3819
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 septembre 2020
113
Précise simplement le nom de la classe:
void vSetScrollingMode(int8u i8uField, B::enScrollingMode CLabel::enCurrScrollingMode);

________________________________________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
8
Date d'inscription
vendredi 3 octobre 2003
Statut
Membre
Dernière intervention
23 juillet 2010

Merci pour ta réponse.

C'est ce que j'ai essayé, mais le compilo me dit classe B non déclarée. Or j'ai inclus le fichier header comprenant la classe ("B.h"). J'ai essayé un "class B;" aussi dans le fichier "C.cpp" mais rien à faire...

fichier "B.h":

class B: public A
{
    public:
      enum enScrollingMode
      {
         ScrollingNone=0,
         ScrollingLeft,
         ScrollingRight
      };

      enScrollingMode enCurrScrollingMode;
};

fichier "C.h":

class C : public A
{
    public:
        void vSetScrollingMode(int8u i8uField,B::enScrollingMode enCurrScrollingMode);
};



Johanboy
Messages postés
3819
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
28 septembre 2020
113
J'arrive sans problème à compiler ceci, chez moi:
typedef int int8u;

class A
{
};

class B : public A
{
    public:
      enum enScrollingMode
      {
         ScrollingNone=0,
         ScrollingLeft,
         ScrollingRight
      };

      enScrollingMode enCurrScrollingMode;
};

class C : public A
{
public:
  void vSetScrollingMode(int8u i8uField, B::enScrollingMode enCurrScrollingMode)
  {
  }
};

int main()
{
  A a;
  B b;
  C c;

  c.vSetScrollingMode(4, B::ScrollingNone);

  return 0;
}


En mettant A, B et C dans des fichiers séparés, il n'y a aucune raison que ça ne fonctionne pas.

________________________________________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question