在cccallfuncnd中,我们通过指针.通过当地范围的指针是一个好习惯
In CCCallFuncND we pass pointers. Is it a good practice to pass pointer of local scope
在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;
}
这不是一个好习惯。您可以通过,但是如果您没有立即运行CCCALLFUNCND,则不能使用它。如果将其放入CC序列并以后运行,则Void*将指向某个无效的地址。
它是安全的,只要您不将指针返回到本地变量(一旦您从方法返回后,它就会超出范围)。有了新的对象内存,将在堆上分配(请小心新的位置),因此可以安全地从功能中返回它。工厂模式也有同样的事情。http://www.oodesign.com/factory-pattern.html
相关文章:
- 在解决链表问题时创建一个额外的节点是一个好习惯吗?
- 使用完数据结构后清空数据结构是一个好习惯吗?
- 让二传手返回布尔值是好习惯吗?
- 在同一C 源文件中使用多个名称空间是一个好习惯吗?
- 是聪明的指针是RAII的好习惯
- 使用 move-constructor 时将 self 重置为 nullptr 是一个好习惯吗?
- 将指针施放为成员函数作为C函数的指针是一个好习惯吗?
- 重建operator()是重建的好习惯
- 这是使用访问功能的好习惯
- 在cccallfuncnd中,我们通过指针.通过当地范围的指针是一个好习惯
- 在C 中,这是用字符串文字初始化char数组的好习惯
- 使用工厂朋友类分配新类,好习惯
- C++使用"this"是一个好习惯吗?
- 在每个可能的地方使用指针是否是一种好习惯
- 在销毁 pthread 互斥锁之前锁定它是否是一种好习惯
- 总是用{}初始化对象是个好习惯吗
- 这是传递可选/NULL shared_ptr参数的好习惯吗?
- 在头文件中定义c++函数是个好习惯吗?
- 为什么函数对象比函数指针好?
- 大量使用静态成员变量是一种好习惯吗?