0

在 CCCallFuncND 我们传递指针。从另一个方法传递本地范围的指针(即在成员中声明和分配的指针)是否是一种好习惯。

方法是这样的:-

CCCallFuncND * CCCallFuncND::create(CCObject* pSelectorTarget, SEL_CallFuncND selector,    void* d)
{
    CCCallFuncND* pRet = new CCCallFuncND();

    if (pRet && pRet->initWithTarget(pSelectorTarget, selector, d))
    {
        pRet->autorelease();
        return pRet;
    }

    CC_SAFE_DELETE(pRet);
    return NULL;
}
4

2 回答 2

0

只要您不返回指向局部变量的指针(一旦您从方法返回,它将超出范围),这是安全的。在堆上分配对象的新内存(注意放置新的),因此从函数中返回它是安全的。工厂模式做同样的事情。 http://www.oodesign.com/factory-pattern.html

于 2012-11-08T07:08:24.677 回答
0

这不是一个好习惯。可以通过,但是如果没有立即运行 CCCallFuncND 就不能使用了。如果您将其放入 CCSequence 并稍后运行,则 void* 将指向某个无效地址。

于 2012-11-09T00:54:19.283 回答