我创建了一个自定义图层,我想将两个变量传递到该图层。我应该在构造函数中还是在Tlayer函数中初始化Hlayerinit()?我检查了一些资料,大多数人说我们应该避免使用构造函数。为什么?

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/

10-11 18:17