cocos2d-x 指针在继承中的错误 create不能成功

`class Base:public cocos2d::Node{
public:
Base();
void setSprite(cocos2d::Sprite* sprite);
cocos2d::Sprite* getSprite();
cocos2d::Size getConSize();

private:
cocos2d::Sprite* m_sprite;

};

class Coin:public Base{

public:
static Coin* createCoin();
virtual bool init();
CREATE_FUNC(Coin);
//金币动作
cocos2d::Animate* createAnimate(cocos2d::SpriteFrameCache* frameCache);
// 物理刚体
void initBody();

};
m_coinArr = Array::create();
m_coinArr -> retain();
Coin * coin =NULL;

for (int i = 0; i <= coinNum; ++i) {
    coin = Coin::create();
    
    
    coin->setVisible(false);
    coin->setTag(coinTag);
    // 记得添加
    this->addChild(coin);
    m_coinArr->addObject(coin);
}

`
Base继承了Node,Coin继承了Base.Coin重写了create方法,最后create 出还是空指针,不知道怎么retain()求大神给出继承中的规范代码,谢谢