那么,只是为了让我省心,将值分配给类构造函数中的静态成员变量不是逻辑上的错误吗?
编辑:我的意思是使用=运算符
值是否会随着声明的每个对象而不断变化?
假设我向构造函数发送了一个值,然后我用它来设置静态变量的值。声明每个对象后,静态变量的值都会不断变化。
答案 0 :(得分:0)
如果您将其视为一个逻辑错误,则只是一个逻辑错误。
但是,如果每个构造函数对静态变量的值的更改正是您想要执行的操作,那么这不是逻辑错误。
就像已经提到的注释一样,一个示例是计算所有构造函数。通常,这还伴随着所有DEstructor的计数,最后产生了现有实例的计数。
可以通过在静态变量上使用=
运算符来实现该示例,
count_of_ctors = count_of_ctors +1;
;
尽管它通常可能会使用++
,
count_of_ctors++;
。
在问题中概述的特殊情况下,将变量设置为作为ctor的参数给出的值,可以达到相同的目的,即通过将静态变量的当前值增加一。
但是您可能是指不是从静态变量的当前值得出的值。
那仍然可能是预期的行为。我认为记录实例化的最后日期和时间可能是这样的值,可以用于调试或记录目的。可以通过始终实例化当前时间来使用。
由于ctor可能会更好地读取当前时间(为了方便和篡改保护),因此这是另一个想法。对于每个实例,都必须提供用户ID(可能还需要匹配的密码),以便静态变量始终具有创建实例的最后一个用户ID。