我有處理功能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的,以避免通常由具有相同的多個因素引起的極度混亂名稱在給定範圍內可引用)。 –