我有处理功能pointer.I已经由具有函数指针作为成员的类控制的一个问题:空函数指针,一个头文件内声明的功能
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
至少有三个不同的东西在你的榜样名为'mouseFunction'。检查以确保在您的实际代码,mouseFunction'的'每次使用是指你所期望的事情(考虑重新命名一些'mouseFunction's的,以避免通常由具有相同的多个因素引起的极度混乱名称在给定范围内可引用)。 –