Class Visual C++ .NET

#include "stdafx.h"
using namespace System;
using namespace System::Collections;
ref class Book{
   public:
     Book(){ }
     Book(String^ _title) { Title = _title; }
     property String^ Title;
};
int main(){
   ArrayList^ theList = gcnew ArrayList();
   theList->Add( gcnew Book("Men") );
   Book^ book = safe_cast( theList[0] );
   Console::WriteLine(book->Title );
   theList->Add( gcnew String("data"));
   try{
      book = safe_cast( theList[1] );
   }catch(InvalidCastException^ e){
      Console::WriteLine("wrong type");
   }
}