ref class MyClass
{
};
ref class MyClass
{
};
int main()
{
MyClass^ myClass = gcnew MyClass;
//以下はコンパイルエラーとなる。
//MyClass* myClass = gcnew MyClass;
return 0;
}
ref class MyClass
{
};
int main()
{
MyClass^ a = gcnew MyClass;
MyClass% s = *a;
MyClass^% t = a;
//初期化が必要なため以下はコンパイルエラーとなる。
//MyClass% u;
MyClass^ b = gcnew MyClass;
//再設定は不可なため以下はコンパイルエラーとなる。
//s = *b;
return 0;
}
int main()
{
System::String^ s =nullptr;
//以下はコンパイルエラーとなる。
//System::String^ s =NULL;
return 0;
}
名前 | 宣言 | 呼び出されるタイミング | C#では |
デストラクタ | ~MyClass() | gcnewで生成した場合は、delete呼び出し時 gcnewを使用せず作成した場合は、スコープを抜けた時 |
Dispose() |
ファイナライザ | !MyClass() | ガーベージコレクションによる解放時 | デストラクタ |
ref class MyClass
{
public:
// コンストラクタ
MyClass()
{
}
// デストラクタ
~MyClass()
{
}
// ファイナライザ
!MyClass()
{
}
};
int main()
{
MyClass myclass;
MyClass^ pmyClass = gcnew MyClass();
//deleteを呼ぶとデストラクタが呼ばれ、deleteを呼ばないとガーベージコレクションの判断したタイミングでファイナライザが呼ばれる
delete pmyClass;
return 0;
}//myClassのデストラクタが呼ばれる
ref class MyClass{
private:
int value;
public:
property int Value
{
int get(void)
{
return value;
}
void set(int value)
{
value = value;
}
}
};
int main()
{
MyClass^ myClass = gcnew MyClass();
myClass->Value = 10;
return 0;
}
ref class MyClass{
public:
property int Value;
};
ref class MyClass{
private:
int value;
public:
property int Value
{
public : int get(void)
{
return value;
}
private : void set(int value)
{
value = value;
}
}
};
using namespace System;
//インターフェイスの宣言
interface class IMyInterface
{
public:
void myFunction();
property Object^ MyProperty;
event EventHandler^ MyEvent;
};
//インターフェイスを実装するクラス
ref class MyClass : IMyInterface
{
public:
virtual void myFunction()
{
}
virtual property Object^ MyProperty;
virtual event EventHandler^ MyEvent;
};