[ c++ ] pointeur sur fonction

pointeur sur fonction [ c++ ] - Programmation

Marsh Posté le 18-04-2001 à 22:59:40    

idealement je possede une classe du type
 
 
class abc{
   void (*fct);
   ...
   ...
 
   public:
   abc(void (*f));
}
 
et un constructeur
 
abc:abc(void (*f)){
...
}
 
et je voudrais passer par parametres l'adresse dune fonction pour faire pointer ma fonction membre dessus...
 
est ce possible et comment?

Reply

Marsh Posté le 18-04-2001 à 22:59:40   

Reply

Marsh Posté le 18-04-2001 à 23:06:49    

Ben déjà il faudrait lui définir un proto à ta fonction.
Exemple:
 
typedef void (*PFonction)(int param1, double param2, char* para3);
 
Et après tu peux écrire :
 
ABC::ABC(PFonction fonction) {
   ...
}
 
void toto(int param1, double param2, char* para3) {
   ...
}
 
int main() {
   ABC  abc(toto);
   ...
}

Reply

Marsh Posté le 19-04-2001 à 09:26:32    

Biface a raison, avec ou sans typedef il faut que tu donne le proto de ta fct, c'est a dire au mini
void (*fct)(...); // Beurk c'est pas beau, mais ca marche
 
Mon intervention est la suivante : pourquoi donc a tu besoin de cela ! A priori, c'est inutile, dangeureux et peu lisible...
une methode virtuelle ne repond-elle pas mieux a ton besoin ?

Reply

Marsh Posté le 19-04-2001 à 10:35:24    

Le plus simple c de passer au Java ==> plus de pointeur  
 :lol:  :lol:

Reply

Marsh Posté le 21-04-2001 à 17:41:58    

Fais gaffe, il me semble que ça marche pas parce que ton pointeur fct est membre de la classe, et donc peut pointer que sur une fonction membre aussi. A vérifier ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed