【发布时间】:2013-04-18 15:51:46
【问题描述】:
我需要确保在程序执行期间始终存在某个类的至少一个实例。单身人士不会这样做,因为(除其他原因外)我将来可能需要更多实例。一个静态类也可以,但感觉就像是全球化......我还想要一些私有成员,包括函数和变量。
我曾考虑将 shared_ptr 保存在安全的地方,但这似乎是一个粗略的 hack。
有标准的方法吗?
编辑
澄清:这不是能够检查实例是否仍然存在的问题。实例必须始终存在。原因是类中有静态成员变量,应该保持它们的状态。
【问题讨论】:
-
为什么你需要某个类的至少一个实例?
-
您将如何访问此实例?可以懒惰构造吗?
-
@DanF:为了不松散一些静态成员变量的状态。
-
@Luc:是的。这甚至是可取的。
-
@steffen - 静态成员独立于类。您可以在没有类实例的情况下使用它们,例如
class_name::member。