c – cocos2d-x中的正确实例化和内存管理

c – cocos2d-x中的正确实例化和内存管理,第1张

概述我一直在寻找cocos2d-x的文档,但它似乎真的很差,超出了基础.我知道我自己的类应该继承CCObject才能使用(最初是 cocoa的)保留/释放机制,但是我仍然对你新事物时会发生什么感到困惑. init不会自动调用.可以从构造函数中调用它吗?是否仅保证我的对象将以引用计数1开始?什么是CC_SAFE_DELETE,我什么时候应该使用它?释放和自动释放的工作与可可完全一样吗?怎么样CC_SYN 我一直在寻找cocos2d-x的文档,但它似乎真的很差,超出了基础.我知道我自己的类应该继承CCObject才能使用(最初是 cocoa的)保留/释放机制,但是我仍然对你新事物时会发生什么感到困惑. init不会自动调用.可以从构造函数中调用它吗?是否仅保证我的对象将以引用计数1开始?什么是CC_SAFE_DELETE,我什么时候应该使用它?释放和自动释放的工作与可可完全一样吗?怎么样CC_SYNTHESIZE?我只需要看到一个正确编码的类示例(以及它的实例化/破坏)来理解我应该做的事情,以免螺丝和留下内存泄漏.
谢谢.解决方法 如果您将查看CCObject类的代码,您将看到它的构造函数引用计数在那里设置为1.因此,使用new创建对象是正确的.不调用Init,因为CCObject类没有这样的方法.通常我更喜欢使用静态构造函数创建对象. Smth喜欢

MyClass* MyClass::createInstance(){    MyClass* object = new MyClass();    // you can create virtual init method    // and call it here    if( initWasSuccessful )    {        object->autorelease();    }    else    {        CC_SAFE_RELEASE_NulL(object);    }    return object;}

关于所有宏,如CC_SAFE_DELETE – 你可以在cocos2dx的代码中找到它们.这个宏只检查对象是否为NulL,以防止在尝试调用release方法时崩溃.

@H_419_22@ 总结

以上是内存溢出为你收集整理的c – cocos2d-x中的正确实例化和内存管理全部内容,希望文章能够帮你解决c – cocos2d-x中的正确实例化和内存管理所遇到的程序开发问题。

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

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

原文地址: http://outofmemory.cn/web/1002083.html

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

发表评论

登录后才能评论

评论列表(0条)

保存