• # C++ ?

    Posté par  (site web personnel) . Évalué à 4.

    Si tu fais du c++ pourquoi ne pas utiliser de l'objet, par exemple des methodes virtuelles plutot qu'un tableau de fonctions ?
    Sinon, donne ce que tu as essayé, ca sera plus facile à corriger...
    • [^] # Re: C++ ?

      Posté par  . Évalué à 1.

      Voir ma réponse à cho7 pour ce que j'avais tenté. Sinon c'est que je suis encore dans une phase d'étude du c/c++ : j'ai pas encore bien vu la couche objet. c'est pour ça que ça ne m'est pas venu naturellement.

      Merci !
  • # Hum

    Posté par  (site web personnel) . Évalué à 3.

    pffioouu ca fait longtemps que j'ai pas codé en C, mais de mémoire :
    un pointeur sur fonction donne un truc genre
    int (*plop) ();

    J'ai jamais eu le besoin de faire un tableau de pointeurs sur fonctions, et je n'ai pas gcc sous la main, donc je ne suis sûr de rien mais je supposerai une syntaxe genre :

    (int (*plop)()) * tab;
    ou même
    int (*plop)() * tab;

    p'tain ca fait peur quand même :)
    C'est surement pas ca, mais ca m'a fait plaisir d'essayer ^^
    • [^] # Re: Hum

      Posté par  (site web personnel) . Évalué à 3.

      Bon puis après quelques recherches, je dirai un truc genre :

      int (*plop[])();

      tout simplement :)
      • [^] # Re: Hum

        Posté par  . Évalué à 1.

        Merci moi j'avais butté sur int*(plop)[](), int*plop()[] principalement. Ton astuce à l'aire de fonctionner.

        Merci encore !
  • # Exemple :

    Posté par  . Évalué à 3.


    typedef int MonTypeDeFonction(int foo, const char* bar);

    MonTypeDeFonction monTableauDeFonction[100];

    int fct0(int foo, const char* bar) { ... }
    int fct1(int foo, const char* bar) { ... }
    int fct2(int foo, const char* bar) { ... }

    monTableauDeFonction[0] = fct0;
    monTableauDeFonction[1] = fct1;
    monTableauDeFonction[2] = fct2;
    ...

    {
    ...

    MonTypeDeFonction fn = monTableauDeFonction[42];
    int retour = (fn)(0, "foo");



    Le plus marrant, c'est en C++ pour appeler une méthode sur un objet : (obj->*fct)(args);

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.