C のシングルトン
C では、シングルトン設計パターンを実装する方法がいくつかあります。これは、クラスに単一のインスタンス。シングルトン クラスを作成するための 2 つの一般的なアプローチは次のとおりです。
ポインターを返す従来のシングルトン
このメソッドでは、シングルトン クラスはそのインスタンスへのポインターを返します。
<code class="cpp">class A { private: static A* m_pA; A(); virtual ~A(); public: static A* GetInstance(); static void FreeInstance(); void WORK1(); void WORK2(); void WORK3(); };</code>
ただし、オブジェクトに参照がまだあるときに FreeInstance() メソッドが呼び出された場合、このアプローチには潜在的な問題があります。これに対処するには、シングルトン オブジェクトを手動で解放しないようにします。
参照を返すシングルトン
シングルトンを参照として返すことは、安全性を高めるもう 1 つのアプローチです。
<code class="cpp">class A { private: static A* m_pA; explicit A(); void A(const A& a); void A(A &a); const A& operator=(const A& a); virtual ~A(); public: static A* GetInstance(); static void FreeInstance(); void WORK1(); void WORK2(); void WORK3(); };</code>
この実装により、Singleton オブジェクトを誤って破棄することがなくなります。
その他の考慮事項
シングルトン設計の詳細とベスト プラクティスについては、推奨リソースを参照してください:
以上がシングルトン設計パターンを C で実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。