@egtraイグトランスの頭の中(のかけら)ActiveBasicを中心にプログラミングの話をぼちぼちと。C++/CLI.コメントなし結局1週間経ってしました。それはともかく、前回書いたようにC++/CLIの型の機構は.NETのそれとはかなり異なっています。今回は値型を取り上げます。CLIにおいて、値型は、ローカル変数なら通常スタック上に割り当てられる上、引数・戻り値は値渡しされるので、基本的にガベージコレクションの世話にはなりません。そのためか、C++/CLIでは値型オブジェクトをどこに置くかということがかなり自由です例としてSize構造体を取り上げます。}マネージヒープはCLIが管理しGCの対象になるメモリ確保に使われるヒープで、ネイティブヒープはそうでないmalloc関数やnew演算子のメモリ確保に用いられるヒープの総称です。このように値型のオブジェクトは、どこにでも置けてしまいます。ところで、C#でボックス化と言えば、殆どの場合object型にすることでした。ほかにもボックス化したオブジェクトを保持できる型はありますが、いずれにしてもアップキャストです。C++/CLIの場合少なくともソースコード上は基の型を保ったままボックス化できます。*h;これは型安全で、ボックス化された値を取り出すのにダウンキャストする必要が無いということが利点となるようです。いうことができるのはどちらかというと参照型との直行性を保つための意味合いが大きいと個人的には思います。「ボックス化」とは、マネージヒープに新しいオブジェクトを割り当てて、基となるオブジェクトのコピーを作る操作です。ポインタなどと違い、基となるオブジェクトを参照する訳ではないのです。}このコードをコンパイル・実行すると、1が出力されます。これが問題となる機会は少ないような気がしますが、だからこそうっかりしないように気を付けたいものです。コメントをキャンセルメールアドレスが公開されることはありません。WPThemes.Info。