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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part ProcessTree(_Root, &Classification::SaveClassToXML, (ClassFunc)&Classification::SaveClassToXMLClose, data, length);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
Partager