main()の開始後にクラスの静的サブオブジェクトを初期化する方法はありますか?クラスの静的サブオブジェクトを遅延的に初期化する方法はありますか?
0
A
答えて
2
一つの方法は、静的メンバデータの静的メンバ関数を置き換えることです。
は、あなたがこのクラスをしたと言う:
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;
}
};
注意スレッドセーフでもあります。
0
あなたはこのオブジェクトのポインタを使用することができます。そうする
class SomeClass{
public:
static SomeOtherClass* p;
};
SomeOtherClass* SomeClass::p;
void main(){
SomeClass::p = new SomeOtherClass();
}
+0
しかし、この割り当ては手動で破棄する必要があります。私はこれを避けたいと思います。 – Belloc
関連する問題
- 1. 遅延静的クラスメンバ初期
- 2. Javaで静的クラスを再初期化する方法はありますか?
- 3. Pythonに静的コンストラクタまたは静的初期化子がありますか?
- 4. 春の静的初期化Springの静的初期化
- 5. C++で初期(静的)バインディングと遅延(動的)バインディングとは何ですか?
- 6. 静的配列を初期化する方法は?
- 7. マルチスレッドコンテキストで静的変数を初期化する方法は?
- 8. 遅延テーブルの初期化
- 9. CDI Beanを遅延初期化する方法は?
- 10. Java静的初期化ブロック
- 11. Javaの静的初期化ブロックから戻す方法
- 12. jQuery遅延関数を再初期化する方法
- 13. クラス内の静的データメンバ(クラス)の初期化C++
- 14. @Transactionalによる遅延初期化
- 15. OpenEntityManagerInViewFilterによる遅延初期化?
- 16. Kotlin:ベクトルの初期化を遅延させる方法
- 17. gccは静的変数を自動的に0に初期化しますか?
- 18. 非最終静的フィールドの静的初期化は安全ですか?
- 19. なぜC++で静的クラス変数を初期化する必要がありますか?
- 20. 静的メンバーの初期化子のラムダスコープ
- 21. __m128i配列をgccで静的に初期化するには?
- 22. 静的const配列はMSVCで動的に初期化されますか?
- 23. 派生クラスのctorが実行されるまで、C++基本クラスのメンバの初期化を遅延させる方法はありますか?
- 24. C++静的constテンプレートメンバの初期化
- 25. Goでの静的初期化?
- 26. 整数配列の静的初期化
- 27. 静的なboost :: unordered_mapの初期化
- 28. 静的フィールド/プロパティの初期化
- 29. 静的変数の初期化java
- 30. PHP静的変数の初期化
静的サブオブジェクト*とはどういう意味ですか? *静的メンバー*を意味しますか? – Nawaz
はい埋め込みクラスのオブジェクトである静的メンバー – Belloc