#c
#c
Вопрос:
У меня проблема с библиотекой CEGUI
у меня есть класс для события (щелчок, нажатие клавиши … и т.д.)
class GUI_Event
{
private:
bool (*_L_Mouse_Click_DoFunction ) () ;
protected:
bool onClick(const EventArgs amp;Args)
{
return _L_Mouse_Click_DoFunction();
}
public:
SetFunctionClick(bool Function ()) /// i forget ()
{
_L_Mouse_Click_DoFunction = Function ;
}
};
у меня есть другой класс с именем button для создания кнопки и окна
cass GUI_Button : public GUI_Event
{
public:
void CreateButton(//some argument) ;
};
void GUI_Button::CreateButton(//some argument)
{
...
.
..
..
_Frame_Window->subscribeEvent ( FrameWindow::EventMouseClick , Event::Subscriber (amp;GUI_Window::onClick ));//error
}
теперь, если я скомпилирую этот код, я получу следующую ошибку
ошибка C2064: термин не вычисляется для функции, принимающей 1 аргумент c:cegui-sdk-0.7.5-vc10ceguiincludeceguifunctorcopyslot.h 51
Ответ №1:
Проверьте эту строку,
SetFunctionClick(bool Function) { _L_Mouse_Click_DoFunction = Function ;}
Член класса _L_Mouse_Click_DoFunction
является указателем на функцию. Таким образом, ей может быть назначена только переменная того же типа. Значение Function
имеет bool
тип.
Вы можете изменить это на,
SetFunctionClick(bool (*Function) ())