由于我也是刚刚开始学习cococ2d-x这个引擎,有些地方理解的也不很好。但是今天犯了一个很低级的错误,在使用单例的时候误把重写的create的方法认为是单例,本人很生气,所以就记录了下来。也为刚刚学习 cocos2d-x的同学不要给我一样。代码仅供参考。
首先什么是单例?
个人认为单例就是一个全局的,在什么地方(这个说的是在你的项目工程里啊 )都可以使用,在整个程序的过程中都是不会死亡的,知道程序的结束。
单例的实现:
<pre name="code" class="cpp">static HeroTank* instance = NULL;
HeroTank * HeroTank::getInstance() {
if(instance == NULL) {
instance = new HeroTank();
instance->init();
}
return instance;
}
由于我将单例跟重写的create方法搞混了,那我就讲create也贴出来吧,重写create方法是在需要传参的时候。
重写create方法如下:
HeroTank* HeroTank::create(int num)
{
HeroTank* hero = new HeroTank();
if(hero&&hero->init(num))
{
hero->autorelease();
return hero;
}
delete hero;
hero = NULL;
return NULL;
}
以上也就是我的基础知识点不扎实到时的,说我就决定记录下来,防止以后再犯此类错误,和方便以后查看使用,如有错误也希望各位读者给予更正。