Je voudrai savoir le prototype d un pointeur sur le constructeur d un objet.
le constructeur de l objet serai:
CObject( void *pvData)
merci.
Je voudrai savoir le prototype d un pointeur sur le constructeur d un objet.
le constructeur de l objet serai:
CObject( void *pvData)
merci.
Je suis indiscrète : pourquoi faire? Est-ce bien judicieux?
Ca je ne suis pas sûre que ça marche... ni que ce soit prévu...
Si on suit la systaxe d'un pointeur sur fonction, ça devrait être:
Sauf qu'il n'y a pas de type de retour... je n'ai pas essayé, mais le compilateur risque de raler.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 (*CObject)(void*);
C'est impossible à faire.
Même question : tu veux faire quoi ?
Mieux que SDL : découvrez SFML
Mes tutoriels 2D/3D/Jeux/C++, Cours et tutoriels C++, FAQ C++, Forum C++.
Ce n'est pas possible.
Tu peux avoir des pointeurs sur fonctions membres, mais ils doivent avoir un type de retour (void si pas de retour).
Par contre tu peux utiliser un pointeur sur une méthode statique d'une classe qui joue le rôle de constructeur (comme dans les Factory je crois).
exemple:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 class CObject{ static CObject construct(void *); }; CObject (*pointeur)(void *); pointeur = CObject::construct;
Si tu ne veux pas implémenter un DP Factory tu peux même faire une traditionnelle méthode Create et Release et faire des pointeurs vers ces méthodes.
Dans tous les cas tu gagnes à passer par des fonctions d'initialisation et de destruction, surtout lorsque tu envoies comme paramètre à ton constructeur un void*...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 class CFoo { public: CFoo(void* t) {Create(t);} ~CFoo() {Release();} private: void Create(void* t) {...} void Release() {...} }
Partager