Passage de fonction en paramètre d'une fonction.
J'essaie de faire passer une fonction en paramètre d'une autre, mais le compilateur ne semble pas reconnaître le type.
J'ai essayé avec et sans cast, mais cela n'y change rien.
Voici le .h, suivi du .cpp et du message d'erreur.
Quelqu'un saurait-il m'indiquer quelle est mon erreur?
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| class Classification
{
public :
class myClass;
typedef int (*ClassFunc)(myClass * inClass, char * Data, int & DataSize);
private :
class myClass
{
};
int SaveClassToXML(myClass * ClassRoot, char * InputData, int & DataSize);
int SaveClassToXMLClose(myClass * ClassRoot, char * InputData, int & DataSize);
int ProcessTree(myClass * ClassRoot, ClassFunc PreProcessFunc, ClassFunc PostProcessFunc, char * Data, int & DataSize);
myClass * _Root;
}; |
Code:
ProcessTree(_Root, &Classification::SaveClassToXML, (ClassFunc)&Classification::SaveClassToXMLClose, data, length);
Citation:
Classification.cpp(87) : error C2440: 'type cast' : cannot convert from 'int (__thiscall Classification::* )(Classification::myClass *,char *,int &)' to 'Classification::ClassFunc'
There is no context in which this conversion is possible
Classification.cpp(87) : error C2440: 'type cast' : cannot convert from 'int (__thiscall Classification::* )(Classification::myClass *,char *,int &)' to 'Classification::ClassFunc'
There is no context in which this conversion is possible