J'ai donc une classe comme:ayant "typedef void FuncCharPtr" dans une classe comment alimenter la fonction qui utilise ce typedef avec des fonctions non statiques?
class IGraphElement{
// We should define prototype of functions that will be subscribers to our data
typedef void FuncCharPtr(char*, int) ;
public:
// Function for adding subscribers functions
void Add(FuncCharPtr* f)
{
//...
}
};
et une autre classe comme
#include "IGraphElement.h"
class simpleRendererGraphElement : public IGraphElement
{
public:
IGraphElement* charGenerator;
// we owerrite init
void Init(IGraphElement* CharGenerator)
{
charGenerator = CharGenerator;
//we can to subscribe some function to our data generator
charGenerator->Add(renderCastedData); // and here we receive C3867
}
void renderCastedData(char* castedChar, int castedCharLength) // our event system receives functions declared like void FuncCharPtr(char*, int) ;
{ }
};
pourquoi nous obtenons erreur C3867 et comment corriger ne pas faire des fonctions statiques?
'FuncCharPtr' est un terme inapproprié: ce n'est pas du tout un type de pointeur, c'est un type de fonction. Un type de pointeur ressemblerait à 'typedef void (* FuncCharPtr) (char *, int);'. –