ユーザ用ツール

サイト用ツール




サイドバー

C++/CLI

CLR

実用編

その他

cli:ref_class

ref class

ref classで定義されたクラスは、つねにマネージヒープ上に作られます。スタック上に作ったように見えても、実際はマネージヒープ上に作られます。

gcnewを使ってインスタンスを作成した場合、^を使って参照として受け取ります。これをハンドルといいます。

ref class C {
    int i;
    int j;
public:
    C() {
    }
    ~C() {
    }
    !C() {
    }
};
int main()
{
    C^ a = gcnew C;
    C^ b = gcnew C;
    C c;
    {
        C d;
    }  // d.~C()が呼ばれます。
 
    delete a;  // a->~C()が呼ばれます。
}  // c.~C()が呼ばれます。
// b.!C()が呼ばれます。



/var/www/html/virtual/cppcli/data/pages/cli/ref_class.txt · 最終更新: 2013/12/23 09:08 (外部編集)