我在处理函数指针时遇到问题。我创建了一个具有函数指针作为成员的类 Control:
void (*mouseFunction) (Control*, Event*);
该成员是受保护的,它有 setter 和 getter:
void (*getMouseFunction()) (Control*,Event*)
{
return mouseFunction;
}
void setMouseFunction( void (*mouseFunction) (Control*, Event*) )
{
this->mouseFunction=mouseFunction;
}
问题是,即使设置了指针,它也始终为 NULL。
我在头文件中声明了一个函数:
void mouseFunction (Control* control, Event* event)
{
std::cout << "Inside Text Field";
}
如果我尝试分配它:
myControlInstance.setMouseFunction(mouseFunction);
如果我使用 getter 来获取指针,它是 NULL;如果我尝试执行该函数,我会得到 EXC_BAD_ACCESS:
error: address doesn't contain a section that points to a section in a object file