Ошибка при сохранении функции-члена как указателей на функции в C ++ - PullRequest
0 голосов
/ 20 марта 2012

Я пытаюсь сохранить указатель на функцию-член в структуре, которая будет использоваться для вызова функции позже в моей программе.

Примерно так:

// abc.h
namespace XYZ {
typedef void func(const uint8_t *buf, int len);
struct holder
{
    // other members
    func * storePtr;
}
} // end of namespace

другой файл как:

// pqr.h
#include abc.h
namespace XYZ {
 class pqr {
   // data members and other functions
   void func1(const uint8_t *buffer, int length);
   void func2(func *section);
   void func3();
   }
} // end of namespace

Теперь мой файл cpp должен хранить экземпляр этого func1 в моем члене структуры storePtr

// app.cpp
#include pqr.h
void pqr::funct3()
{
   // Do something
   func2(func1);
}
void pqr::func2(func * section)
{
   holder h;
   h.storePtr = section;
}

Но я получаю ошибку компиляции в строке "func2 (func1);" как "ошибка C3867: 'pqr :: func1': список отсутствующих аргументов при вызове функции; используйте '& pqr :: func1' для создания указателя на член"

Я использовал & pqr :: для определения области, но это также не решает мою проблему, и я не могу понять, что делать.

1 Ответ

1 голос
/ 20 марта 2012

Указатели на функцию-член - это не то же самое, что указатели на нормальные функции - взгляните на объяснение и пример здесь: http://msdn.microsoft.com/en-us/library/k8336763.aspx

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