単純な値の場合、問題はありません。.cppファイルに設定するだけです。
ただし、次の例を考えてみましょう。これには、初期化/クリーンアップコードが必要です。
// .h
class MyClass {
...
private:
static unsigned First1000Primes[1000];
} ;
.cppファイルでは、配列を初期化する必要があり、そのためのコードが必要です。
.cppファイルでクラスInitializerを定義し、値を入力するctorを使用して、同じファイルで静的Initializer InitAndCleanupを宣言できるため、コードは起動時に1回実行されます(必要に応じて同様にdtor / cleanupコードを実行します)。 。
このソリューションの問題は、初期化子がそのプライベートパーツにアクセスするためにMyClassのフレンドである必要があるため、その「乱雑さ」です。
だから私の質問は:よりクリーンな方法はありますか?