Elf2mod(3)

もう少し調べてみましたが、どうやらグローバル変数のコンストラクタ・デストラクタは共に呼ばれない模様。


関数内で static 変数を使った場合は、(当然だけど)コンストラクタだけは呼ばれるみたい。
グローバル領域で使うことを前提にクラスを書くのならともかく、通常のクラスをグローバルに出すのは、コンストラクタが呼ばれないってのもそうだけど、そもそもアプレットすら作られてない状態なので、かなり危ない。


ということで、クラス類をグローバルとして使うなら、グローバルとして使用することを前提としたクラス、つまり singleton とかのクラス以外は使用しない方がよさげです。

class Hoge{
private:
    Hoge(){}
    ~Hoge(){} // こいつが動作することを期待したプログラムを書いてはいけない
public:
    static public Hoge* get(){
        static Hoge hoge;
        return &hoge;
    }
};