0
私はthisのSOの質問を見て、この種のコードをリアルタイムの例で実際に使用できるかどうか疑問に思っています。またクラス内の宣言クラスの静的メンバーをリアルタイムで使用する
struct a
{
static struct a b;
};
int main()
{
a::b;
return 0;
}
ご入力のa::b;
感謝の意義とは何か。
私はthisのSOの質問を見て、この種のコードをリアルタイムの例で実際に使用できるかどうか疑問に思っています。またクラス内の宣言クラスの静的メンバーをリアルタイムで使用する
struct a
{
static struct a b;
};
int main()
{
a::b;
return 0;
}
ご入力のa::b;
感謝の意義とは何か。
このようなコードは、シングルトンパターンの実装に使用できます。ここでは、タイプa
の1つのインスタンスが宣言されています。他のインスタンスが何らかの形で禁止されている場合、それはシングルトンです。しかし実際には、私は思い出しますが、通常はあまり混乱しない構文を使用します。
そして、a::b
については、何も役に立たない。インスタンスの名前が表示されます。より有用な例は次のとおりです。
struct a
{
static struct a b;
int data;
};
a a::b = {9};
int main()
{
int stuff = a::b.data;
printf("%d\n", stuff);
return 0;
}
インスタンス化できるインスタンスの数が1つに制限されているクラスをシングルトンクラスと呼びます。したがって、いつでも1つのインスタンスしか存在できません。私たちは静的な方法でそれを実装できます。どのように自分自身のクラスの静的オブジェクトを作るのが助けになるのか分かりません。 – CppLearner
@CppLearner 'a :: b'の定義は、リンカによってあらかじめ定義されたアドレスに置くことができます(ハードウェアへのメモリマップアクセス) – anatolyg
ありがとう、私はちょうどあなたの説明を確認[リンク] http://stackoverflow.com/questions/2593324/c-singleton-classからのコードを見た。 'class MySingleton { public: static MySingleton&getInstance() { 静的MySingletonインスタンス。 return instance; } プライベート: MySingleton(); 〜MySingleton(); }; ' – CppLearner