how to extend CCSprite?

hi all, actually i’m a java&objc programmer, my c*+ experience was so limited…
i wanna extend CCSprite, just like objc or java, i did it like this:
——
class BorderedSprite : public CCSprite {
virtual void draw;
};
void BorderedSprite::draw{
CCSprite::draw;
//other code…
}
——
and i get an instance like this:
BorderedSprite *sprite = BorderedSprite::spriteWithSpriteFrameName;
but sprite still a CCSprite, not a BorderedSprite… that is to say, BorderedSprite::draw never be called…
sorry for my poor c*+ knowledge, could anyone help me? thanks for any suggestion.

spriteWithSpriteFrameName is inherit from CCSprite, it new an instance of CCSprite and return it.
So you should override the spriteWithSpriteFrameName, new an instance of BorderedSprite and return it.

thanks Minggo~~i really appreciate your help.
and here’s my extended bordered sprite. it will add a border to current sprite…

class BorderedSprite : public CCSprite {
virtual void draw(void);
public :
static BorderedSprite* spriteWithSpriteFrame(CCSpriteFrame *pSpriteFrame);
};

void BorderedSprite::draw(){
CCSprite::draw();
CCPoint p1 = ccp(0,0);
CCPoint p2 = ccpAdd(esquina1, ccp(this~~>boundingBox.size.width,0));
CCPoint p3 = ccpAdd.size.width,this~~>boundingBox().size.height));
CCPoint p4 = ccpAdd(esquina1, ccp(0,this~~>boundingBox.size.height));
glColor4ub;
glLineWidth;
//glEnable;
ccDrawLine;
ccDrawLine;
ccDrawLine;
ccDrawLine;
}
BorderedSprite* BorderedSprite::spriteWithSpriteFrame
{
BorderedSprite *pobSprite = new BorderedSprite;
if )
{
pobSprite~~>autorelease();
return pobSprite;
}
CC_SAFE_DELETE(pobSprite);
return NULL;
}