[英]Is there a quick way to zero all the static members of a class?
我有一个 class 和 static 成员,每个循环都重置为零,所以类似于:
class Stats
{
static inline int counter1, counter2;
static inline float time;
static void resetStats()
{
counter1 = 0;
counter2 = 0;
time = 0.f;
}
}
使用非静态 class 我可以用零初始化创建一个新的 object 并复制到我想重置的 object 的值。 如果可能的话,我只需要记住,对于我在其中创建的每个成员,我还将它添加到“resetStats()”function 中。
使变量成为 class 的非静态成员,并使用该 class 的 static 实例。 这样,您可以使用值初始化将所有成员设置为零:
class Stats
{
static inline struct {
int counter1, counter2;
float time;
} data;
static void resetStats()
{
data = {};
}
也就是说,static 变量是全局 state。 应该避免使用 Gobal state。
每个循环都被重置为零
这听起来像是非静态存储的理想用例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.