Mega Code Archive

 
Categories / Visual C++ .NET / Generics
 

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)); }