Generic class definition
#include "stdafx.h" using namespace System; using namespace System::Collections; generic<typename T> ref class MyClass { public: MyClass(int N) { m_Array = gcnew array<T>(N); } static MyClass() { Console::WriteLine("static constructor"); } void SetItem(int i, T t) { m_Array[i] = t; } T GetItem(int i) { return m_Array[i]; } String^ GetItemStringValue(int i) { return m_Array[i]->ToString(); } private: array<T>^ m_Array; }; void main() { MyClass<String^>^ myClass = gcnew MyClass<String^>(10); myClass->SetItem(0, "test"); Console::WriteLine("{0}", myClass->GetItem(0)); // Value class specialization MyClass<DateTime>^ myClass2 = gcnew MyClass<DateTime>(10); myClass2->SetItem(0, DateTime::Today); Console::WriteLine("{0}", myClass2->GetItem(0)); }
1. | Generic Class Demo | ||
2. | Generic class for value type |