question de newbie sur les pointeur de fonction

question de newbie sur les pointeur de fonction - C++ - Programmation

Marsh Posté le 04-06-2003 à 15:21:48    

voici mon code bidon mais qui marche!!

Code :
  1. //Prototype de fonction
  2. void affichage (char*,char*, int (*)(int,int));
  3. int addition(int,int);
  4. int main (){
  5. char chaine1[]="coucou";
  6. char chaine2[]="c est moi";
  7. affichage(chaine1,chaine2,addition );
  8. return 0;}
  9. void affichage(char* chaine1,char* chaine2, int (*mafact)(int,int) ){
  10. int resultat,a=4,b=5;
  11. cout<<chaine1<<endl;
  12. cout<<chaine2<<endl;
  13. resultat=(*mafact)(a,b);
  14. cout<<resultat;
  15. }
  16. int addition(int a, int b){
  17. cout<<a+b;
  18. return a+b;
  19. }


 
Quand j'appel affichage existe t'il une solution de passer les parametres de addition au pointeur de fonction addition  
en fait j'aurais aimé faire
affichage(chaine1,chaine2,addition(3,5) ); vu que mon pointeur accepte 2parametres!!!
Mais ça marche pas!!! on peut le faire ou pas fait pour!!!
Merci

Reply

Marsh Posté le 04-06-2003 à 15:21:48   

Reply

Marsh Posté le 04-06-2003 à 15:26:49    

Code :
  1. void affichage(char* chaine1,char* chaine2, int (*mafact)(int,int),int param1, int param2 ){
  2. int resultat;
  3. cout<<chaine1<<endl;
  4. cout<<chaine2<<endl;
  5. resultat=(*mafact)(param1,param2 );
  6. cout<<resultat;
  7. }


Message édité par LetoII le 04-06-2003 à 15:26:56

---------------
Le Tyran
Reply

Marsh Posté le 04-06-2003 à 15:28:25    

Un truc du style
 

Code :
  1. typedef int (*functParam)(int, int);
  2. void affichage (char*,char*, functParam);
  3. int addition(int,int);
  4. int main() {
  5.     ....
  6.     affichage(chaine1, chaine2, addition);
  7. }
  8. void affichage(char* chaine1, char* chaine2, functparam pfunct) {
  9.     ....
  10.     pfunct(a, b):
  11. }
  12. int addition(int a, int b) {
  13.     ....
  14. }

Reply

Sujets relatifs:

Leave a Replay

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