Cocos2d-x 笔记

1、工厂方法 是程序设计中一个经典的设计模式,指的是基类中只定义创建对象的接口,将实际的实现推迟到子类中。在这里,我们将它稍加推广,泛指一切生成并返回一个对象的静态函数。一个经典的工厂方法如同这样:

1
2
3
4
5
6
7
CCObject* factoryMethod() 
{  
    CCObject* ret = new CCObject();  
    //这里对ret对象进行必要的初始化操作  
    ret->autorelease();  
    return ret;  
}


2、关于对象传值

将一个对象赋值给某一指针作为引用的时候,为了遵循内存管理的原则,我们需要获得新对象的引用权,释放旧对象的引

用权。此时,release()和retain()的顺序是尤为重要的。当other和object实际上指向同一个对象时,第一个release()可能会触发该对象的回收,这显然不是我们想看到的局面,所以应该先执行retain()来保证other对象有效,然后再释放旧对象:

1
2
3
4
5
6
void SomeClass::setObject(CCObject* other) 
{  
    other->retain();  
    this->object->release();  
    this->object = other;  
}

上一篇:python案例 - 实现trim函数


下一篇:TensorFlow教程之API DOC 6.3.5. FRAMEWORK