Structure et pointeur sur fonction

Le
police74 Hors ligne
Bonjour,

je debute en programmation, et je me demandais comment adresser une fonction a l interieur d une structure sans passer par des fonctions static ?

exemple:

struct SPR
{ int a,b ;

int fonction(int c)
{ return a+b+c ;}
}spr;

int main()
{ int (*pointeur)(int)=Spr.fonction; }

la derniere ligne ne marche pas !!!

je sais que l on pourrait ecrire
(SPR : : * pointeur)(int)=&SPR::fonction;
mais cela ne pointe pas vers une fonction d une instance precise !
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Marc Boyer
Le #26341979
Le 04-03-2015, police74
Bonjour,

je debute en programmation, et je me demandais comment adresser une fonction a l
interieur d une structure sans passer par des fonctions static ?



Ce que je ne comprends pas, c'est pourquoi tu veux faire ça.
A quoi te sert de stoquer l'adresse d'une fonction membre?


Marc Boyer
--
"On est tout surpris, un beau soir, de trouver la satiété où
l'on cherchait le bonheur", [Beaumarchais, Mar. de Figaro, V, 7]
police74 Hors ligne
Le #26342006
Le mercredi 04 Mars 2015 à 02:12 par police74 :
Bonjour,

je debute en programmation, et je me demandais comment adresser une fonction a
l interieur d une structure sans passer par des fonctions static ?

exemple:

struct SPR
{ int a,b ;

int fonction(int c)
{ return a+b+c ;}
}spr;

int main()
{ int (*pointeur)(int)=Spr.fonction; }

la derniere ligne ne marche pas !!!

je sais que l on pourrait ecrire
(SPR : : * pointeur)(int)=&SPR::fonction;
mais cela ne pointe pas vers une fonction d une instance precise !


bah, les debutants posent souvent des questions betes...
Lucas Levrel
Le #26342024
Le 3 mars 2015, police74 a écrit :

je sais que l on pourrait ecrire
(SPR : : * pointeur)(int)=&SPR::fonction;
mais cela ne pointe pas vers une fonction d une instance precise !



Je ne crois pas que cela existe, une fonction dépendant de l'instance. La
fonction est la même pour toutes les instances d'une classe.

--
LL
Ἕν οἶδα ὅτι οὐδὲν οἶδα (Σωκράτης)
espie
Le #26342048
In article Lucas Levrel
Le 3 mars 2015, police74 a écrit :

je sais que l on pourrait ecrire
(SPR : : * pointeur)(int)=&SPR::fonction;
mais cela ne pointe pas vers une fonction d une instance precise !



Je ne crois pas que cela existe, une fonction dépendant de l'instance. La
fonction est la même pour toutes les instances d'une classe.



Euh, avec C++2011, tu peux tres bien coller un std::function dans un
objet.

Ca dit pas que tu vas pouvoir fabriquer ce que tu veux exactement, mais
je soupconne qu'avec les bonnes lambda et les bonnes captures, ca
devrait avoir a peu pres l'effet voulu.
Publicité
Poster une réponse
Anonyme