回答:
// here normal pointer
P* ptr = new P; // usual pointer allocated on heap
P& nat = *ptr; // object on heap bind to native object
//.. here CLI managed
MO^ mngd = gcnew MO; // allocate on CLI heap
MO% rr = *mngd; // object on CLI heap reference to gc-lvalue
一般的には、punctuatorは%
にある^
punctuatorのように&
しています*
。C ++では、単項&
演算子はC ++ / CLIでは単項演算%
子です。
が&ptr
生成される間、P*
はに%mngd
生成されMO^
ます。
マネージメモリを割り当てた場合、そのメモリはガベージコレクターによって移動できます。^演算子は、マネージメモリを指すポインターであり、ガベージコレクターが指しているオブジェクトをガベージコレクターが移動しても、正しい場所を指し続けます。
C ++ / CLIでは、マネージポインターを意味します。詳細(およびその他のC ++ / CLI機能)については、こちらをご覧ください。