Pointeurs sur fonctions

Soyez le premier à donner votre avis sur cette source.

Snippet vu 4 576 fois - Téléchargée 34 fois

Contenu du snippet

Ceci est un code (totalement brute et inutile) qui montre comment pointer des fonctions. Ca permet entre autre chose de passer des fonctions en paramètre.
J'ai trouvé cette source (et non, malheureusement, elle n'est pas de moi) sur le site d'un IUT.
L'URL: http://www.iut-bethune.univ-artois.fr/~caron/courscpp/courscpp.html
Vous trouverez dessus de nombreux cours C++ avec de tres petits exemples mais clairs...

Source / Exemple :


#include <iostream.h>

int f1(char a) { cout << "f1:" << a << endl ; return 1 ;  }
int f2(char a) { cout << "f2:" << a << endl ; return 2 ; }
int f3(char a) { cout << "f3:" << a << endl ; return 3 ; }

void fonction(int (*fct)(char), char a)
{
  fct(a);
}

int (*ptr_f) (char) ;

int main(void) {
  ptr_f = f1 ;
  int i ;

  i=(*ptr_f) ('b') ; // affiche f1:b
  cout << i << endl ;   // affiche 1
  
  ptr_f = f2;  // pointe f2
  fonction(ptr_f, 'c'); // le premier parametre est un pointeur (passage de fonction en parametre)

  return 0 ;
}

Conclusion :


J'ai rajouté à la demande un exemple de passage de fonction en paramètre.
J'espère ne pas avoir fait trop compliqué.(je ne pense pas)

Voilà, aller, je vais m'en servir...

A voir également

Ajouter un commentaire

Commentaires

TeLeTUbIz
Messages postés
215
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
25 septembre 2010
-
Ah bah non.
^^ lol ^^
Parce que dans ce cas, il faut changer la fonction à chaque fois, donc le code est pas très générique.

Mais comme je le dis plus haut si t'as pas envie d'apprendre, c'est pas très grave :-)
coucou747
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
26 -
bah pour ça on mat un parametre en plus dans la fonction, et on met un if dans cette fonction, c'est bcp plus simple, pour ceux qui n'ont pas envie d'aprendre...
TeLeTUbIz
Messages postés
215
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
25 septembre 2010
-
Ouai, tu as certainement raison. Mais je sais pas pkoi, ce truc m'avait parru être utilisé que dans des cas assez rares.
cs_JCDjcd
Messages postés
1138
Date d'inscription
mardi 10 juin 2003
Statut
Membre
Dernière intervention
25 janvier 2009
2 -
Je pense qu'un "logiciel commun" se programme comme tout autre logiciel, et le maniment des pointeurs de fonction est indispensable a la pratique du langage C, c'est juste mon petit avis, mais des fois moi ca m'est bien utile. De toute maniere cela va avec l'apprentissage des pointeurs qui eux sont obligatoires ....
TeLeTUbIz
Messages postés
215
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
25 septembre 2010
-
Ben toute sorte de logiciels de type bureautique, traitements de texte, etc...
Enfin tout les logiciels courants.
C'est surtout (du moins je pense, je me trompe peut être) utilisé dans des logiciels à utilisation professionnelle comme les SGBD (bases de données) etc...
Je pense que ce genre de truc s'écarte un peu de la programmation classique (genre procédurale, très mécanique) et s'oriente plutôt vers la programmation dynamique. Enfin, pour ce qui est des logiciels, il est vrai qu'aujourd'hui avec les nombreuses bibliothèques qu'il existe, ca doit s'intégrer à de nombreux logicielsn même les plus courant, car il y'a souvent besoin de trier des choses ou de répéter une même opération sur des éléments différents.
C'est clair ? Hmmm... En me relisant je me trouve pas clair.

Disons en gros que ne pas savoir ça, ca ne chamboulera le travail de personne.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.