[C++] Les différents types de pointeurs sur fonction ?

Les différents types de pointeurs sur fonction ? [C++] - C++ - Programmation

Marsh Posté le 09-03-2006 à 11:19:38    

Bonjour à tous !  :hello:  
J'ai une petite question sur les pointeurs sur fonction, mais je vais d'abord vous décrire le paysage dans lequel je suis. C'est du code sur lequel je dois me greffer, par plus ou moins tous les moyens (c'est pour une démo one-shot et pas pour une application pérenne. Ce code sera d'ailleurs repris "from scratch" bientôt)
 
Voilà j'ai une classe Menu avec des fonctions que je veux/peux appeler, par exemple

Code :
  1. Menu::openFile()


J'ai une classe Application avec une variable publique statique

Code :
  1. Application::the

qui est un pointeur vers la seule et unique instance de la classe Application. C'est donc accessible de partout.
Cette application permet d'accéder à une instance de menu, à avoir

Code :
  1. Application::the->menu


 
 
Depuis une autre classe j'ai besoin de faire des associations du style (variable, pointeur sur fonction)
Actuellement j'ai ca :

Code :
  1. void openFile() {
  2.     OpenSGWidget::the->osgMenu->openFile();
  3. }
  4. void AutreClasse::association() {
  5.     this->associate(toto, openFile);
  6. }


Avec associate une méthode qui prend en second paramètre un  

Code :
  1. void (*)()


 
Si je veux me passer de la fonction openFile et faire un associate du genre

Code :
  1. this->associate(toto, Application::the->menu->openFile)

, le second paramètre est de quel type ?

Code :
  1. void (OpenSGMenu::*)()

?
 
 
Je précise que je ne suis pas du tout familier des pointeurs sur fonction, d'où ma question qui peut (sans doute) vous choquer :D
 
Merci d'avance pour l'aide  :jap:


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
Reply

Marsh Posté le 09-03-2006 à 11:19:38   

Reply

Marsh Posté le 09-03-2006 à 11:38:09    

les pointeurs de fonctions libres et les pointeurs de fonctions membres statiques sont de même type. incompatible avec les pointeurs de fonctions membres

Reply

Marsh Posté le 09-03-2006 à 11:40:16    

Reply

Marsh Posté le 09-03-2006 à 11:42:26    

Merci msieur  :love: Je vais lire tout ca !


---------------
Il y a autant d'atomes d'oxygène dans une molécule d'eau que d'étoiles dans le système solaire.
Reply

Sujets relatifs:

Leave a Replay

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