我定义了一个回调函数
void MailCell::onBtnClick(CCNode* sender)
{
}
m_btnReceive->addTargetWithActionForControlEvents(this,
cccontrol_selector(MailCell::onBtnClick),
CCControlEventTouchUpInside);
回调函数指针的定义
typedef void (CCObject::*SEL_CCControlHandler)(CCObject*, CCControlEvent);
运行时调用的地方
(m_target->*m_action)(sender, m_controlEvent);
然后我在加一个参数还是可以正确运行,event参数也是从m_controlEvent那边传过来的
void MailCell::onBtnClick(CCNode* sender, CCControlEvent event)
{
}
为什么我定义的回调函数可以少一个参数呢?
因为编译时候是没问题的,程序运行的时候,如果发现参数有多,就把多余的参数忽略掉。