2013-08-05 42 views
0
bool GameOverLayer::init() 
{ 
    if (CCLayerColor::initWithColor(ccc4(255, 255, 255, 255))) { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 

函數initWithColor不是靜態函數,爲什麼我可以用cclayercolor調用它?爲什麼class可以調用no static函數?

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

GameOverLayer從CCLayerColor繼承和initWithColor功能是公共和非靜態的,所以在代碼中,你可以使用以下語句:

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

這意味着呼叫從選擇的親本遺傳功能。
如果你不喜歡這種類型的主叫可以使用的:

this->initWithColor(ccc4(255,255,255,255)); 
,如果你想知道更多關於這種類型的節目

閱讀更多關於繼承和多重繼承。你可以在herehere

+0

哦,我知道,謝謝。 –

相關問題