Category Archives: C++/CLI

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

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

テスト

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

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

考察

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

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