1

静的ローカル変数とクラスの静的メンバーに関するいくつかの質問を見ました。これの1つのコメントと、おそらく最も明確な1つのリンクから

C++ 入門書は次のように述べています。

各ローカル静的変数は、最初の実行がオブジェクトの定義を通過する前に初期化されます。関数が終了しても、ローカルの静的は破棄されません。プログラムが終了すると、それらは破棄されます。

しかし、上記の「プログラムの終了時」という記述は曖昧であることがわかりました。アプリケーションが終了するということですか?またはプラグインの場合、プラグインがアンロードされていることを意味しますか?

以前、Linux でリリース モードでコンパイルしたときにプラグインがアンロードされると、ローカルの静的変数が破棄されないことに気付きました。しかし、クラスメンバーに変更すると、プラグインのアンロード時に適切に破棄されます。クラス/ローカル静的変数は、プラグインでのみ使用されます。

誰でも説明できますか?

4

1 に答える 1