我创建了一个自定义图层,我想将两个变量传递到该图层。我应该在构造函数中还是在Tlayer
函数中初始化Hlayer
和init()
?我检查了一些资料,大多数人说我们应该避免使用构造函数。为什么?
TouchLayer* TouchLayer::create(TcharacterLayer* t,HcharacterLayer* h){
TouchLayer* pRet = new TouchLayer();
if (pRet && pRet->init())
{
pRet->autorelease();
return pRet;
}else
{
delete pRet;
pRet = NULL;
return NULL;
}
}
class TouchLayer : public CCLayerColor
{
public:
TouchLayer();
~TouchLayer();
virtual bool init();
virtual void onEnter();
virtual void onExit();
CREATE_FUNC(TouchLayer);
static TouchLayer* create(TcharacterLayer* t,HcharacterLayer* h);
TcharacterLayer* Tlayer;
HcharacterLayer* Hlayer;
};
最佳答案
我认为您可以在此处获得有关“为什么我们应该使用init()方法而不是构造方法”的一些相关信息:https://stackoverflow.com/a/20280664/3090526
关于c++ - 我何时需要使用cocos2d-x中的参数来初始化Custom create函数中的变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22447358/