cocos2dx 内存管理

本文介绍Cocos2dx中的引用计数机制,包括Ref类的使用方法如retain、release等,以及自动回收池的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方法一:引用计数(Reference Count)

cocos2dx采用的就是引用计数机制,引擎中抽象了一个基类Ref,需要引用计数管理的类都会public Ref继承这个类。Ref的实例包含一个计数器,当新建一个Ref实例的时候,计数器初始化为1,同时Ref提供了修改计数器的接口:

(1)Ref::retain() --计数器加1

(2)Ref::release() --计数器减1,假如减1后计数为0,那么触发delete this,销毁自身

(3)Ref::autorelease() --把实例添加到AutoreleasePool,并在游戏的下一帧对实例的计数做减1操作

(4)Ref::getReferenceCount() --返回实例当前的计数值


方法二:自动回收池(AutoreleasePool)

引擎默认有一个自动回收池,所有通过create()方法生成的对象,会自动添加到这个默认的自动回收池;被加入到自动回收池的对象,计数器会在游戏的下一帧自动调用Ref::release()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值