我有一个带有静态成员的类,每次循环都会被重置为零,所以类似于。
class Stats
{
static inline int counter1, counter2;
static inline float time;
static void resetStats()
{
counter1 = 0;
counter2 = 0;
time = 0.f;
}
}
对于一个非静态的类,我可以创建一个新的零初始化对象 然后复制到我想要重置值的对象上 如果可以的话,我只需要记住,我在其中创建的每一个成员,我也把它添加到 "resetStats() "函数中。
让变量成为一个类的非静态成员,并使用该类的静态实例。这样你就可以使用值初始化来将所有成员设置为零。
class Stats
{
static inline struct {
int counter1, counter2;
float time;
} data;
static void resetStats()
{
data = {};
}
也就是说,静态变量是全局状态。应该避免使用全局状态。
每次循环都会被重置为零
这听起来像是非静态存储的理想用例。