【发布时间】:2010-11-14 21:20:48
【问题描述】:
我想要一个具有私有静态数据成员(包含所有字符 a-z 的向量)的类。在 java 或 C# 中,我可以只创建一个“静态构造函数”,它将在创建类的任何实例之前运行,并设置类的静态数据成员。它只运行一次(因为变量是只读的并且只需要设置一次)并且由于它是类的函数,它可以访问其私有成员。我可以在构造函数中添加代码来检查向量是否已初始化,如果未初始化则对其进行初始化,但这会引入许多必要的检查,并且似乎不是问题的最佳解决方案。
我突然想到,由于变量将是只读的,因此它们可以是 public static const,所以我可以在类之外设置它们一次,但再一次,它看起来有点像一个丑陋的 hack。
如果我不想在实例构造函数中初始化它们,是否可以在类中拥有私有静态数据成员?
【问题讨论】:
标签: c++ static private initializer static-constructor