使用简单的值没有问题:我们只需在 .cpp 文件中设置它们。
但请考虑以下示例,它需要一些初始化/清理代码:
// .h
class MyClass {
...
private:
static unsigned First1000Primes[1000];
} ;
在 .cpp 文件中,我们要初始化数组,并且需要一些代码。
我们可以在 .cpp 文件中定义一个类 Initializer,使用一个填充值的 ctor,并在同一文件中声明一个静态 Initializer InitAndCleanup ,因此代码将在启动时运行一次(如果需要,类似地运行 dtor/cleanup 代码) .
这个解决方案的问题是它的“混乱”,因为初始化器必须是 MyClass 的朋友才能访问它的私有部分。
所以我的问题是:有没有更清洁的方法?