为什么类可以调用无静态函数?

时间:2013-08-05 02:11:20

标签: cocos2d-x

bool GameOverLayer::init()
{
    if (CCLayerColor::initWithColor(ccc4(255, 255, 255, 255))) {
        return true;
    }
    else
    {
        return false;
    }
}

函数initWithCoder不是静态函数,为什么我可以用cclayercolor调用它?

define initWithColor function as below code :
bool CCLayerColor::initWithColor(const ccColor4B& color)
{
   CCSize s = CCDirector::sharedDirector()->getWinSize();
   this->initWithColor(color, s.width, s.height);
   return true;
}

1 个答案:

答案 0 :(得分:1)

GameOverLayer继承自CCLayerColor,initWithColor函数是公共和非静态的,所以在代码中你可以使用这个语句:

CCLayerColor::initWithColor(ccc4(255,255,255,255));

表示从所选父级调用继承函数 如果你不喜欢这种类型的电话,你可以使用:

this->initWithColor(ccc4(255,255,255,255));

如果您想了解有关此类编程的更多信息,请阅读有关继承和多继承的更多信息。您可以从herehere

开始