在这种情况下,最好使用静态数据吗?

时间:2018-10-20 22:06:56

标签: c++

说我有一个名为platform的类,该类应引用某个游戏的玩家Player* player并具有独特的纹理。它还将包含一个由整数给出的速度的副本。播放器将在程序初始化时设置一次,而速度也应在初始化时设置一次。这就是platform类的初衷

class platform
{
int vel;
Player* player;
Texture texture;
};

问题在于,现在将为platform类的每个实例化实例化一个新的指针和整数。因此,我认为将velplayer指定为静态成员可以优化这种情况。但是,如果这是最佳选择,我会感到困惑-我听到周围所有人都说静态数据被认为是不好的做法。但是对我来说,在这种情况下,无论实例数量如何,我都只能有一个整数和指针,这对我来说确实是有益的。如何最好地解决这种情况?

1 个答案:

答案 0 :(得分:1)

使用static修饰符没有错。唯一的问题是,您需要吗?

要回答这个问题,您应该理解将属性设置为static意味着该属性将不再是对象属性,而是类属性。 这意味着,如果您的目标是在所有实例之间共享相同的玩家和相同的速度,则应使用static

仅记得在代码实现中为类之外的播放器指针分配内存。

Player *Player::player = new Player();

我希望这可以解决您的问题。