ui中的button无法添加addTouchEventListener

请教我想使用ui中的button,但调用cc_callback失败

cocos2d::ui::Button* addIntell = cocos2d::ui::Button::create("check_normal.png","check_pressed.png","");;
addIntell->setTouchEnabled(true);
   
std::string type="intellect";
int tag = this->getcharacterTag();

//addIntell->addTouchEventListener(this,CC_CALLBACK_2(household::schedulbutton, this, tag, type));(这两种都不行)
addIntell->addTouchEventListener(CC_CALLBACK_2(household::schedulbutton, this, tag, type));//no matching function for call to "addTouchEventListener"
    
addIntell->setPosition(Point(people->getContentSize().width *0.5, people->getContentSize().height* 0.5));
people->addChild(addIntell);



```


而回调函数是这样的
void household::schedulbutton(Ref *pSender, cocos2d::ui::TouchEventType touchtype, int characterTag, std::string type)

对于这个错误:no matching function for call to "addTouchEventListener"
为什么找不到,我是包含了#include "ui/CocosGUI.h"以及#include "UIWidget.h"

之前是no matching member function for call to “addTouchEventListener”
如果换成下面这样的写法,是不会有上面的错误,只是说它已经被deprecated
addIntell->addTouchEventListener(this, (cocos2d::ui::SEL_TouchEvent)(& household::schedulbutton));
然而这样编译明显不对,我的回调函数多了几个参数。
继续求教~~~