#include <iostream>
#using <mscorlib.dll>
ref class A { //参照クラス ref をつけます。
public:
int a;
};
int main(array<System::String^>^ args)
{
A^ a = gcnew A(); //参照クラスはマネージヒープ上に作られる。返されるのはハンドルという。
//インスタンスはGCによってマネージヒープ上を移動する。
//ポインタのように演算はできない。
//gcnewで作成してdeleteのような後始末は勝手にやってくれるので必要ない。
//ただし、いつ削除されるかはわからない。
a->a = 10; //アクセスにはアロー演算子を使う。
A b; //このようにも使える。
//内部的には A^ b = gcnew A となっている。
//この場合スコープを抜けると削除される。
b.a = 20; //この場合はドット演算子を使う。
System::Console::WriteLine(a->a);
System::Console::WriteLine(b.a);
getchar();
return 0;
}
// 表示結果
// 10
// 20
※コメント投稿者のブログIDはブログ作成者のみに通知されます