Pointeurs sur fonctions de classes distinctes - C++ - Programmation
Marsh Posté le 12-07-2002 à 13:35:59
Faut que tu utilise les pointeurs de méthodes virtuelles je pense (me demande pas comment on fait je connais que de nom, jamais essayé)
Marsh Posté le 12-07-2002 à 14:09:49
>> (j ai l habitude qu on me comprenne pas! )
effectivement, je trouve que tu expliques très mal. mets-toi à la place du gars qui veut comprendre, quel genre d'infos veux-tu en premier ? les plus importantes. je penses que tu devrais commencer par dire "je veux faire X, qui utiliserait des Y et des Z". ensuite tu dis "j'ai pensé à l'implémenter comme ça, mais je suis bloqué sur ça".
mets des noms plus explicites que pil prm & co, si c'est pour gérer des scénarios appelle tes méthodes executeScenario() par exemple.
là, je nage.
Marsh Posté le 12-07-2002 à 14:15:46
ok j edite ca de suite!
en esperant que ce soit mieux explique!
Marsh Posté le 12-07-2002 à 14:34:15
mon probleme 2:
j ai besoin d inserer en parametre dans une fonction un pointeur sur fonction; le tout dans un systeme de classe.
j ai une classe mere qui dispose de la fonction qui prends le pointeur sur fonction en parametre:
Code :
|
et un ensemble de classe fille:
Code :
|
voici mes fonctions que j aimerais bien avoir:
Code :
|
en fait je veut que ca: ca marche! c est a dire que ma fonction put_in_scenario prenne un pointeur sur fonction qui puisse marcher pour des fonctions de classes differentes (ces classes etant heritees publiquement d une meme classe mere,
qui contient la fonction put_in_scenario (qui prend le pointeur sur fontion) en public)...
de ce que je sais, ca ne peut pas marcher: car si on veut declarer un pointeur sur fonction
pour une fonction methode d une classe, il faut le declarer en specifiant
la classe de la fonction...
Or ici les classes de ces fonctions ne seront pas toujours les memes... --> probleme!
je me suis dit que ca pourrait peut etre marcher si on declarait ce pointeur de fonctions
comme faisant partie de la classe mere. Donc le declarer ainsi:
Code :
|
mais je suis pas sur que ca marche!
Marsh Posté le 12-07-2002 à 14:54:28
TonyClifton a écrit a écrit : ... |
visiblement je m'exprime très mal, quand je disais "X avec Y et Z" c'était de l'ordre "je fais un jeu de rôle, je veux gérer plusieurs scénarios avec une même classe et les appeler à différents moments lors d'une mission". bref, des infos "haut niveau".
>> mais je suis pas sur que ca marche
essaye !
//
ça me semble quand même plus simple de faire une classe 'executer' qui se charge d'éxécuter un bout de code :
class executer
{
virtual void execute() = 0;
};
class executerTest : executer
{
void execute() { printf("test" ); }
}
class mere
{
bool ajouteExecuter(executer* e)
}
mereInstance->ajouteExecuter(e)
bref. donne plus d'infos sur ce que tu veux faire ... pour le moment ta méthode ne me semble pas très appropriée.
Marsh Posté le 12-07-2002 à 15:12:26
je t explique ce que je veut faire dans mon programme:
c est de la 3d (avec OpenGL):
Je veut avoir plusieurs "objets" dispose dans l espace, ces objets correspondant chacun a une instance d une certaine classe.
Je veut que ces objets se deplace et varie dans leur forme selon un scenario preetabli.
j ai donc penser a un systeme de fonctions dans ces classes qui serait appele a un temps t et qui ferait varier les parametres de l instance de la classe.
Ainsi l objet se reaffiche a chaque fois selon ses propres parametres qui peuvent varies dans le temps.
Ces fonctions serait initialise dans une liste (scenario) au debut du programme, puis parcourue pour executer ces fonctions au moment ou il faut.
Ce qui nous fait un scenario pour chaque instance de classe, ce qui fait que j ai choisis d avoir une classe mere a tous ces "objets" car tous ont des methodes communes: la gestion du scenario.
Et la arrive mon probleme de pointeur sur fonction car la fonction le prenant en parametre est declaree dans ma classe mere mais prendra en parametres des fonctions des classes filles (donc de differentes classes) donc: est ce qu on declarer un pointeur sur fonctions qui peut marcher avec differentes classes!
Marsh Posté le 12-07-2002 à 15:21:37
Tu fais un tableau de pointeur vers des méthode membre pour chaque sous classe et une méthode virtuelle pure qui va aller piquer dans ce tableau à l'instanciation de l'objet
Marsh Posté le 12-07-2002 à 15:55:39
Citation : |
euhhh.. t as pas un pitit bout de code d exemple?
Marsh Posté le 12-07-2002 à 16:15:35
TonyClifton a écrit a écrit :
|
Si j'ai bien compris ce que tu veux faire je farai un truc comme ça:
Code :
|
Marsh Posté le 12-07-2002 à 13:32:04
mon probleme:
j ai besoin d inserer en parametre dans une fonction un pointeur sur fonction; le tout dans un systeme de classe.
j ai une classe mere qui dispose de la fonction qui prends le pointeur sur fonction en parametre:
et un ensemble de classe fille:
voici mes fonctions que j aimerais bien avoir:
en gros j aimerais bien que mon pointeur sur fontion soit declare pour des fonctions appartenant a des classes differentes, mais toutes heritee de la classe "c_mere"
La je sais bien que ca marche pas car le pointeur sur fonction n est pas declare correctement, mais j aurais bien voulu pouvoir le declarer comme ca:
et que ca marche (on peut toujours rever).
----
En fait ce systeme sert a avoir une sorte de scenarios pour chaque classe. le programme lance a l instant t la fonction du pointeur. la fonction pil sert a remplir une liste avec pour chaque element une fonction a lancer et un temps associe.
----
Pour faire au mieux je veut utiliser un pointeur sur fonction avec une classe mere commune a toutes les classes pour pas m embeter a recopier a chaque fois la fonction pil avec la
declaration de pointeurs sur fonctions differentes dans les differentes classes: c est a dire de pas avoir une classe mere, mais recopier dans chaque classe la meme partie
en declarant "pil" pour chaque classe:
Y a plus de chance que ca marche mais ca fait de la recopie!
alors est ce possible d avoir cette classe mere avec ce pointeur sur fonction "commun"
et est ce la meilleure facon de gerer un systeme comme celui que j ai?
si vous avez pas compris, demandez et je re-expliquerais!
(j ai l habitude qu on me comprenne pas! )
---------------
yeaheah... ahhhh.... [:tonyclifton]