Pointers 什么';雪碧和雪碧的区别是什么?

Pointers 什么';雪碧和雪碧的区别是什么?,pointers,cocos2d-x,cocos2d-x-3.0,Pointers,Cocos2d X,Cocos2d X 3.0,在Cocos2d-x 3.0中,一些变量是用*定义的,而另一些变量不是。对我来说,它们都是指向某些Cocos类实例的指针,但我对它们之间的区别还不够了解。示例: Point myPoint; Sprite* mySprite; 而且两者的构造方式似乎也有所不同。 最后,我也不明白我自己的类是否应该有*或者没有。你会在这里找到一个解释:如果你将一个Cocos2d-x类作为一个指针的子类,那么你的类也需要是一个指针。永远不要说“永不”。慢是相对的。在许多情况下,您只需在堆上创建对象。这也是对象生命

在Cocos2d-x 3.0中,一些变量是用*定义的,而另一些变量不是。对我来说,它们都是指向某些Cocos类实例的指针,但我对它们之间的区别还不够了解。示例:

Point myPoint;
Sprite* mySprite;
而且两者的构造方式似乎也有所不同。
最后,我也不明白我自己的类是否应该有*或者没有。

你会在这里找到一个解释:如果你将一个Cocos2d-x类作为一个指针的子类,那么你的类也需要是一个指针。永远不要说“永不”。慢是相对的。在许多情况下,您只需在堆上创建对象。这也是对象生命周期的问题,当方法返回时,将释放分配给局部变量的堆栈对象。然而,许多对象需要保持更长的时间。这将指导决策。这两种变体都是常见的做法,虽然存在一些重叠,但每种变体都有特定的用途。易用性和速度与生命周期和对象关系。不能说没有上下文,但似乎是正确的,尽管它确实取决于每个特定的用例。一般来说,短命的对象可以驻留在堆栈上,必须用新的堆在长堆上分配长时间对象。我的C++是生锈的,但我相信只要M活着,D就会生存。我以前肯定见过“stack”成员变量。成员可以在堆栈上分配,并且将与对象一起存在,因为在分配类对象时会为它们保留空间。