关于CCControlButton的回调函数

我定义了一个回调函数

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)

{

    

}


为什么我定义的回调函数可以少一个参数呢?


因为编译时候是没问题的,程序运行的时候,如果发现参数有多,就把多余的参数忽略掉。





你可能感兴趣的:(C++)