Seomaz
Messages postés10Date d'inscriptionjeudi 8 janvier 2009StatutMembreDernière intervention19 mai 2009
-
5 mai 2009 à 15:17
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023
-
5 mai 2009 à 17:55
Bonjour à tous,
Voici mon problème (qui n'en est pas un, mais plutôt une question de style):
J'ai une classe statique, que nous nommerons Manager (secret pro oblige, je peut pas donner son vrai nom), et une classe Profile.
J'ai aussi un typedef de ce style :
Profile* (Manager::*cfao_func) (Profile*, double, double);
jusque la tout va bien.
Maintenant je voudrai déclarer des fonctions membre de Manager qui respectent la signature cfao_func. Comment puis-je faire?
En faisant :
Profile* maFonction(Profile*, double, double)
ça marche. Mais n'y a t'il pas moyen d'utiliser le typedef pour déclarer maFonction ????
D'avance, merci.
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023124 5 mai 2009 à 16:01
Je n'ai pas compris ta question, mais je pense que tu as du mal à utiliser des pointeurs sur membres. Voici donc un petit exemple qui pourra, je l'espère, t'aider.
Seomaz
Messages postés10Date d'inscriptionjeudi 8 janvier 2009StatutMembreDernière intervention19 mai 2009 5 mai 2009 à 16:12
Bonjour,
D'abord merci de m'accorder du temps.
Je vois bien que tu n'as pas compris ma question
Mais, en essayant de la reformuler, je me rend compte qu'elle est en fait débile....
Mais bon, par principe je la pose quand même!
je voudrais utiliser le typedef pour DECLARER maFonction.
Ce qui donnerai
&cfao_func maFonction;
à la place de :
Profile* maFonction (Profile*,double,double);
...
je sais, c'est tordu et pas très utile, mais ça serait joli!!! (et les informaticiens aiment le joli )
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023124 5 mai 2009 à 16:18
Effectivement, je n'avais pas compris ta question :)
En revanche, j'ai toujours du mal à comprendre ta question. Pourrais-tu reprendre l'exemple que j'ai écrit pour montrer ce que tu cherches à réaliser ?
> &cfao_func maFonction;
> à la place de :
> Profile* maFonction (Profile*,double,double);
D'un point de vue théorique, je ne pense pas que ça soit équivalent. La 2ème expression est la fonction, et la 1ère un pointeur. C'est space oO.
Seomaz
Messages postés10Date d'inscriptionjeudi 8 janvier 2009StatutMembreDernière intervention19 mai 2009 5 mai 2009 à 17:09
je vais essayer de manière formelle:
je voudrais déclarer un fonction à partir de la signature d'un pointeur de fonction, sans retaper les types d'entrée et de retour.
Avec l'exemple :
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023124 5 mai 2009 à 17:55
Ce n'est pas possible puisque l'écriture barré est une déclaration de signature, et que l'autre est une déclaration de variable. Donc ça ne peut pas fonctionner.
En revanche, je peux te proposer ceci, qui n'est pas terrible, mais fonctionne (J'aurais aimé que l'on ne soit pas obligé de préciser le nom de la classe, mais la macro __class__ n'existe pas :s).