静态变量与成员

Ano*_*ous 13 c++

如果你有一个类的数据将被修改并需要在整个程序中保留,但只在一个成员函数中使用,是否优先使该变量成为它所在的例程的局部静态变量或使其成为班上的一员?

Dav*_*ler 18

问题不在于"整个程序中是否会使用数据",而是"如果您创建此类的两个对象,您是否希望它们共享此数据?" 如果是,请将其设为静态.如果不是,不要.

  • 谢谢.我忘了甚至类成员函数中的局部静态变量都由该类的所有对象共享. (2认同)

rlb*_*ond 6

我认为在大多数情况下,你永远不应该使用局部静态变量,而是使用静态成员变量.然后问题退化为是否应该在类实例之间共享该变量.