Суть проблемы такова:
В проекте есть 2 класса CQuery, CTest (соответственно в файлах
query.h и test.h)
Класс CTest использует объект класса CQuery и соответственно в файле
CTest есть строка
#include "query.h"
Теперь нужные части из классов:
class CQuery
{
public:
void (*pFunc)(int);
}
class Test : public CFormView
{
private:
void Func (int);
void Run ();
}
void Test::Run()
{
CQuery Query;
Query.pFunc = Func;
}
На самое последнее присваивание ругается:
cannot convert from 'void (__thiscall Test::*)(int)' to 'void (__cdecl *)(int)'
There is no context in which this conversion is possible
Если обявить функцию Run как
static void
все работает. Почему?
Мне не нужно static void.
Как сделать без него?
PS
Причем не могу в классе CQuery написать
void (Test::*pFunc)(int);
Потому как нету в этом файле includ'а на test.h, да и не может быть.