容器

容器,第1张

概述      cocos2dx提供的容器有CcArray,CcDiction。cocos2dx既然使用c++语言,为什么不采用stl提高的容器,还要自己去重新实现一套呢。这首先要从cocos2dx的内存管理机制说起,cocos2dx采用引用计数机制,每个对象都维护一个引用计数器,当计数器为0时,该对象就会被自动释放回收。cocos类都继承基类cobject,cobject实现了引用计数器机制,其派生 cocos2dx提供的容器有CcArray,CcDiction。cocos2dx既然使用c++语言,为什么不采用stl提高的容器,还要自己去重新实现一套呢。这首先要从cocos2dx的内存管理机制说起,cocos2dx采用引用计数机制,每个对象都维护一个引用计数器,当计数器为0时,该对象就会被自动释放回收。cocos类都继承基类cobject,cobject实现了引用计数器机制,其派生类都有此功能。 对cocos对象的使用,通过retain方法获得引用,使用完成后,通过release方法释放引用,这是一对 *** 作。cocos实现的容器都完成了这个功能,而c++标准stl模板容器没有此功能。所以推荐使用cocos提供的容器类。cocos提供的容器只能放对象指针。 为了方便对象的引用 *** 作,cocos框架提供了很多宏,简化了代码。其中常用的有:
CC_SAFE_DELETE(p) 使用delete *** 作符删除一个C++对象p,如果p为NulL,则不进行 *** 作
CC_SAFE_DELETE_ARRAY(p) 使用delete[] *** 作符删除一个C++数组p,如果p为NulL,则不进行 *** 作
CC_SAFE_FREE(p) 使用free()函数删除p,如果p为NulL,则不进行 *** 作
CC_SAFE_RELEASE(p) 使用release()方法释放Cocos2d-x对象p的一次引用,如果p为NulL,则不进行 *** 作
CC_SAFE_RELEASE_NulL(p) 使用release()方法释放Cocos2d-x对象p的一次引用,再把p赋值为NulL。如果p已经为NulL,则不进行 *** 作
CC_SAFE_RETAIN(p) 使用reatin()方法增加Cocos2d-x对象p的一次引用。如果p为NulL,则不进行 *** 作
总结

以上是内存溢出为你收集整理的容器全部内容,希望文章能够帮你解决容器所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1079501.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-27
下一篇2022-05-27

发表评论

登录后才能评论

评论列表(0条)

    保存