Evitons les blahblah : J'ai besion de créer une classe modélisant une
application OpenGL. Pour ce, j'ai besoin d'écrire une méthode qui prends une
méthode en paramètre, j'ai besoin de votre aide pour y parvenir car je ne
sais pas quelle syntaxe utiliser.
<code>
class ParameterNeeded{
public :
ParamaterNeede();
setNeededMethode(void *(*) () ); // comment declare un parametre de type
pointeur vers fonction ??
private :
void * (*) privateMethode; // pointeur vers une methode ??
};
ParameterNeeded::ParametreNeeded(){
cout << "Constructeur de la classe qui demande un parametre de type
methode\n";
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Christophe de VIENNE
chahnaz.ouzikene wrote:
Bonjour,
Evitons les blahblah : J'ai besion de créer une classe modélisant une application OpenGL. Pour ce, j'ai besoin d'écrire une méthode qui prends une méthode en paramètre, j'ai besoin de votre aide pour y parvenir car je ne sais pas quelle syntaxe utiliser.
Apparemment tu veux aussi pouvoir donner en paramètre des fonctions membres. Tu devrais regarder du côté des foncteurs. Par exemple : http://www.boost.org/libs/bind/mem_fn.html http://www.boost.org/libs/bind/bind.html
A+
-- Christophe de Vienne
chahnaz.ouzikene wrote:
Bonjour,
Evitons les blahblah : J'ai besion de créer une classe modélisant une
application OpenGL. Pour ce, j'ai besoin d'écrire une méthode qui prends une
méthode en paramètre, j'ai besoin de votre aide pour y parvenir car je ne
sais pas quelle syntaxe utiliser.
Apparemment tu veux aussi pouvoir donner en paramètre des fonctions
membres. Tu devrais regarder du côté des foncteurs. Par exemple :
http://www.boost.org/libs/bind/mem_fn.html
http://www.boost.org/libs/bind/bind.html
Evitons les blahblah : J'ai besion de créer une classe modélisant une application OpenGL. Pour ce, j'ai besoin d'écrire une méthode qui prends une méthode en paramètre, j'ai besoin de votre aide pour y parvenir car je ne sais pas quelle syntaxe utiliser.
Apparemment tu veux aussi pouvoir donner en paramètre des fonctions membres. Tu devrais regarder du côté des foncteurs. Par exemple : http://www.boost.org/libs/bind/mem_fn.html http://www.boost.org/libs/bind/bind.html
A+
-- Christophe de Vienne
Falk Tannhäuser
Pointeur sur une méthode statique (ou une fonction libre) qui renvoie 'void*' et qui ne prend pas de paramètres :
void* (*pfunc)(); ... class toto { public: static void* titi() { return 0; } }; pfunc = &toto::titi; void* result = pfunc(); // Appel de la fonction pointée
Pointeur sur une méthode ordinaire de la classe "toto" qui renvoie 'void*' et qui ne prend pas de paramètres :
class toto; void* (toto::*pmemfunc)(); ... class toto { public: void* titi() { return 0; } }; pmemfunc = &toto::titi; ... // Appel de la fonction pointée toto t; void* result = (t.*pmemfunc)(); ou toto* pt = new toto; void* result = (pt->*pmemfunc)();
Exemple d'une fonction qui prend un int, un pointeur sur une telle méthode et un double en paramètre :
void foo(int i, void* (toto::*pmemfunc)(), double d) { ... }
Pointeur sur une méthode statique (ou une fonction libre) qui
renvoie 'void*' et qui ne prend pas de paramètres :
void* (*pfunc)();
...
class toto { public: static void* titi() { return 0; } };
pfunc = &toto::titi;
void* result = pfunc(); // Appel de la fonction pointée
Pointeur sur une méthode ordinaire de la classe "toto"
qui renvoie 'void*' et qui ne prend pas de paramètres :
class toto;
void* (toto::*pmemfunc)();
...
class toto { public: void* titi() { return 0; } };
pmemfunc = &toto::titi;
...
// Appel de la fonction pointée
toto t;
void* result = (t.*pmemfunc)();
ou
toto* pt = new toto;
void* result = (pt->*pmemfunc)();
Exemple d'une fonction qui prend un int,
un pointeur sur une telle méthode et
un double en paramètre :
void foo(int i, void* (toto::*pmemfunc)(), double d) { ... }
Pointeur sur une méthode statique (ou une fonction libre) qui renvoie 'void*' et qui ne prend pas de paramètres :
void* (*pfunc)(); ... class toto { public: static void* titi() { return 0; } }; pfunc = &toto::titi; void* result = pfunc(); // Appel de la fonction pointée
Pointeur sur une méthode ordinaire de la classe "toto" qui renvoie 'void*' et qui ne prend pas de paramètres :
class toto; void* (toto::*pmemfunc)(); ... class toto { public: void* titi() { return 0; } }; pmemfunc = &toto::titi; ... // Appel de la fonction pointée toto t; void* result = (t.*pmemfunc)(); ou toto* pt = new toto; void* result = (pt->*pmemfunc)();
Exemple d'une fonction qui prend un int, un pointeur sur une telle méthode et un double en paramètre :
void foo(int i, void* (toto::*pmemfunc)(), double d) { ... }
Merci à tous les deux, surtout à Falk Tannahäuser. Vos méthodes marchent.
Encore merci.
"Falk Tannhäuser" a écrit dans le message de news: cmg5eg$kfi$ Pointeur sur une méthode statique (ou une fonction libre) qui renvoie 'void*' et qui ne prend pas de paramètres :
void* (*pfunc)(); ... class toto { public: static void* titi() { return 0; } }; pfunc = &toto::titi; void* result = pfunc(); // Appel de la fonction pointée
Pointeur sur une méthode ordinaire de la classe "toto" qui renvoie 'void*' et qui ne prend pas de paramètres :
class toto; void* (toto::*pmemfunc)(); ... class toto { public: void* titi() { return 0; } }; pmemfunc = &toto::titi; ... // Appel de la fonction pointée toto t; void* result = (t.*pmemfunc)(); ou toto* pt = new toto; void* result = (pt->*pmemfunc)();
Exemple d'une fonction qui prend un int, un pointeur sur une telle méthode et un double en paramètre :
void foo(int i, void* (toto::*pmemfunc)(), double d) { ... }
Merci à tous les deux, surtout à Falk Tannahäuser. Vos méthodes marchent.
Encore merci.
"Falk Tannhäuser" <falk.tannhauser@crf.canon.fr> a écrit dans le message de
news: cmg5eg$kfi$1@s5.feed.news.oleane.net...
Pointeur sur une méthode statique (ou une fonction libre) qui
renvoie 'void*' et qui ne prend pas de paramètres :
void* (*pfunc)();
...
class toto { public: static void* titi() { return 0; } };
pfunc = &toto::titi;
void* result = pfunc(); // Appel de la fonction pointée
Pointeur sur une méthode ordinaire de la classe "toto"
qui renvoie 'void*' et qui ne prend pas de paramètres :
class toto;
void* (toto::*pmemfunc)();
...
class toto { public: void* titi() { return 0; } };
pmemfunc = &toto::titi;
...
// Appel de la fonction pointée
toto t;
void* result = (t.*pmemfunc)();
ou
toto* pt = new toto;
void* result = (pt->*pmemfunc)();
Exemple d'une fonction qui prend un int,
un pointeur sur une telle méthode et
un double en paramètre :
void foo(int i, void* (toto::*pmemfunc)(), double d) { ... }
Merci à tous les deux, surtout à Falk Tannahäuser. Vos méthodes marchent.
Encore merci.
"Falk Tannhäuser" a écrit dans le message de news: cmg5eg$kfi$ Pointeur sur une méthode statique (ou une fonction libre) qui renvoie 'void*' et qui ne prend pas de paramètres :
void* (*pfunc)(); ... class toto { public: static void* titi() { return 0; } }; pfunc = &toto::titi; void* result = pfunc(); // Appel de la fonction pointée
Pointeur sur une méthode ordinaire de la classe "toto" qui renvoie 'void*' et qui ne prend pas de paramètres :
class toto; void* (toto::*pmemfunc)(); ... class toto { public: void* titi() { return 0; } }; pmemfunc = &toto::titi; ... // Appel de la fonction pointée toto t; void* result = (t.*pmemfunc)(); ou toto* pt = new toto; void* result = (pt->*pmemfunc)();
Exemple d'une fonction qui prend un int, un pointeur sur une telle méthode et un double en paramètre :
void foo(int i, void* (toto::*pmemfunc)(), double d) { ... }