main() の開始後に静的クラス メンバーを初期化する方法はありますか?
2 に答える
2
これを行う 1 つの方法は、静的メンバー関数の静的メンバー データを置き換えることです。
このクラスがあるとします:
class A
{
static B static_b; //static member data
};
//.cpp
B A::static_b; //definition (required)
その代わりに、クラスを次のように定義できます。
class A
{
static B static_b() //static member function!
{
static B b;
return b;
}
};
これはスレッドセーフではありませんが、スレッドセーフにすることもできます。
于 2012-02-19T12:24:42.783 に答える
0
このオブジェクトにはポインターを使用できます。
class SomeClass{
public:
static SomeOtherClass* p;
};
SomeOtherClass* SomeClass::p;
void main(){
SomeClass::p = new SomeOtherClass();
}
于 2012-02-19T12:22:42.600 に答える