cocos2d-x can't use sender?

Hi there

I want to port the “cocos2d for iPhon” code.

CCMenuItemImage item2 = ;
But, it includes “sender”.
I don’t know how to use in cocos2d-x
I ported like this. however I must add new function.
So, I think it is not good way.
Must I use lambda function?
CCMenuItemImage
item2 = CCMenuItemImage::create(“NormalButtonImage.png”, “SelectedButtonImage.png”, “DisabledButtonImage.png”, this, menu_selector(NewScene::startItemImageCCLOG));

void NewScene::startItemImageCCLOG()
{
CCLOG (“CCMenuItemImage selected.”);
}

When you use menu_selector the selector must have ha CCObject as parameter;

bool HelloWorld::init() {
   CCMenu * mainMenu = CCMenu::create();
   mainMenu -> setPosition( CCPointZero );
   this -> addChild( mainMenu );

   CCMenuItemImage * buttonMessage = CCMenuItemImage::create( "button_0.png", "button_1.png", this, menu_selector( HelloWorld::doShowMessage ) );
   buttonMessage -> setPosition( CCPointMake( 100, 100 ) );
   mainMenu -> addChild( buttonMessage );

   return true;
}

void HelloWorld::doShowMessage( CCObject * p_Sender ) {
   CCMenuItemImage * button = ( CCMenuItemImage * ) p_Sender;
   button -> setVisible( false );

   CCLOG( "button is hidden." );
}

Thank you for replying

I didn’t know CCObject requires.

however I want to know is how to not use menu_selector

I wrote like JavaScript

bool HelloWorld::init() {
CCMenu * mainMenu = CCMenu::create();
mainMenu > setPosition;
this
> addChild( mainMenu );

CCMenuItemImage * buttonMessage = CCMenuItemImage::create( “button_0.png”, “button_1.png”, this, function(CCObject * p_Sender) {
CCMenuItemImage * button = ( CCMenuItemImage * ) p_Sender;
button > setVisible;
CCLOG;
}
);
buttonMessage
> setPosition( CCPointMake( 100, 100 ) );
mainMenu -> addChild( buttonMessage );

return true;
}

I don’t think that is possible using C++.

I see.
So, I must add a function by sender added?