Class Visual C++ .NET

#include "stdafx.h"
using namespace System;
ref class Numbers
{
   array^ ordinals;
   public:
      Numbers()
      {
          ordinals = gcnew array { "zero", "one", "two", "three" };
      }
      property String^ default[unsigned int]
      {
         String^ get(unsigned int index)
         {
             return ordinals[index];
         }
         void set(unsigned int index, String^ value)
         {
             ordinals[index] = value;
         }
      }
};
int main()
{
   Numbers nums;
   Console::WriteLine( nums[0] );
   Numbers^ nums2 = gcnew Numbers();
   Console::WriteLine( nums2[1] );
   Console::WriteLine( nums.default[2] );
   Console::WriteLine( nums2->default[3] );
}