C++/CLIのstatic コンストラクタの呼ばれる順番

staticコンストラクタはクラスがはじめてつかわれる時に一回だけ呼ばれるコンストラクタ

テスト

上記の場合はA→Bの順で呼ばれる。

上記の場合はB→Aの順で呼ばれる。Bが使われてるところでAも呼ばれる。

考察

上記のAがライブラリのような自分で触れないコードの場合、それがいつ呼ばれるのか、すでに呼ばれているのかを知る一般的な方法はないと思う。Astaticコンストラクタでなにかのデータを初期化してる場合はBstaticコンストラクタにそのデータを書くのは危険だろう。

多重継承できるインターフェースのstaticコンストラクタは呼ばれなかった。

Leave a Reply

Your email address will not be published. Required fields are marked *

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)