Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Structure et pointeur sur fonction

4 réponses
Avatar
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 !

4 réponses

Avatar
Marc Boyer
Le 04-03-2015, police74 a écrit :
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]
Avatar
police74
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...
Avatar
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.

--
LL
Ἕν οἶδα ὅτι οὐδὲν οἶδα (Σωκράτης)
Avatar
espie
In article ,
Lucas Levrel wrote:
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.