类构造函数中的静态成员变量分配

时间:2019-03-16 19:30:02

标签: c++

那么,只是为了让我省心,将值分配给类构造函数中的静态成员变量不是逻辑上的错误吗?

编辑:我的意思是使用=运算符

值是否会随着声明的每个对象而不断变化?
假设我向构造函数发送了一个值,然后我用它来设置静态变量的值。声明每个对象后,静态变量的值都会不断变化。

1 个答案:

答案 0 :(得分:0)

如果您将其视为一个逻辑错误,则只是一个逻辑错误。
但是,如果每个构造函数对静态变量的值的更改正是您想要执行的操作,那么这不是逻辑错误。
就像已经提到的注释一样,一个示例是计算所有构造函数。通常,这还伴随着所有DEstructor的计数,最后产生了现有实例的计数。

可以通过在静态变量上使用=运算符来实现该示例,
count_of_ctors = count_of_ctors +1;; 尽管它通常可能会使用++count_of_ctors++;

在问题中概述的特殊情况下,将变量设置为作为ctor的参数给出的值,可以达到相同的目的,即通过将静态变量的当前值增加一。

但是您可能是指不是从静态变量的当前值得出的值。
那仍然可能是预期的行为。我认为记录实例化的最后日期和时间可能是这样的值,可以用于调试或记录目的。可以通过始终实例化当前时间来使用。

由于ctor可能会更好地读取当前时间(为了方便和篡改保护),因此这是另一个想法。对于每个实例,都必须提供用户ID(可能还需要匹配的密码),以便静态变量始终具有创建实例的最后一个用户ID。