вызвать функцию указателя в классе - PullRequest
0 голосов
/ 27 июля 2011

У меня есть функция указателя в классе, которая определена вне класса и используется в качестве обратного вызова.

Класс выглядит следующим образом

class A
{
    void CreateGrid(OWindow *win,int x,int y);
    Otkobject *GetIcon(void *data,Otkobject *obj,int x)
}

Я определил GetIcon функция как это

Otkobject *A::GetIcon(oid *data,Otkobject *obj,int x){
    //statements
}

За это я получаю ошибки.

Затем я попытался

Otkobject A::*GetIcon(void *data,Otkobject *obj,int x){
    //statements
}

Я получаю имя функции и использую обратный вызов.Как использовать этот указатель функции?

Ответы [ 2 ]

1 голос
/ 27 июля 2011

Это функция, возвращающая указатель, а не указатель на функцию.Ошибка может быть отсутствующей точкой с запятой после объявления класса:

class A
{
    void CreateGrid(OWindow *win,int x,int y);
    Otkobject *GetIcon(void *data,Otkobject *obj,int x); // <- also here
}; // <- notice semicolon
0 голосов
/ 27 июля 2011

Вы должны ввести определение функции. что-то вроде:
typedef Otkobject * function_type (void * data, Otkobject * obj, int x);

и затем вы можете использовать указатель на функцию где угодно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...