说我有一个名为platform
的类,该类应引用某个游戏的玩家Player* player
并具有独特的纹理。它还将包含一个由整数给出的速度的副本。播放器将在程序初始化时设置一次,而速度也应在初始化时设置一次。这就是platform
类的初衷
class platform
{
int vel;
Player* player;
Texture texture;
};
问题在于,现在将为platform
类的每个实例化实例化一个新的指针和整数。因此,我认为将vel
和player
指定为静态成员可以优化这种情况。但是,如果这是最佳选择,我会感到困惑-我听到周围所有人都说静态数据被认为是不好的做法。但是对我来说,在这种情况下,无论实例数量如何,我都只能有一个整数和指针,这对我来说确实是有益的。如何最好地解决这种情况?
答案 0 :(得分:1)
使用static
修饰符没有错。唯一的问题是,您需要吗?
要回答这个问题,您应该理解将属性设置为static
意味着该属性将不再是对象属性,而是类属性。
这意味着,如果您的目标是在所有实例之间共享相同的玩家和相同的速度,则应使用static
。
仅记得在代码实现中为类之外的播放器指针分配内存。
Player *Player::player = new Player();
我希望这可以解决您的问题。