2017-06-02 11 views
0

あります。これはC++ 1ではスレッドセーフです。このクラスを静的ライブラリとしてコンパイルし、2つの異なる共有ライブラリでこのライブラリを使用すると、これらの2つの共有ライブラリをアプリケーションにリンクするときにシングルトンのインスタンスは1つだけありますか?はC++ 11シングルトンのインスタンスは1つだけ私は、静的なローカルライブラリを返しシングルトンgetメソッドを持つクラスを使用する静的ライブラリから

+1

私が与えることができる最高の一般的なアドバイスは次のとおりです。すべての_Singleton Pattern_を使用しないでください。 –

+1

私はそれを知っていますが、構成クラスを持つすべてのクラスを初期化せずに、アプリケーション全体で構成パラメータを共有するために使用する以外の方法はありません。 – Gustavo

+0

デザインの原則を逆転させる。 trhoughoutからシステム全体の構成パラメーターにアクセスしないでください。ただし、作成時にクラスを関連する構成値で構成してください。 _Factory Pattern_が適切に設計されて実装されていることは、このために便利です。 –

答えて

1

各DLLはWindowsのシングルトンの独自のコピーを取得します。私はそれがLinuxで違うと聞いたことがありますが、そこには直接の経験はありません。そのコードで定義された静的変数を含む -

リンカは共有ライブラリを作成するために呼び出されると、それがどの静的ライブラリのうち、必要とする任意のコードをコピーします。作成される各共有ライブラリは、コードと変数の異なるコピーを取得します。

関連する問題