Listing 1

using namespace System;
Point F(Point p) {
    return p;
}
int main()
{
/*1*/   Point::TraceID = true;

/*2*/   Point^ hp1 = gcnew Point;
    Console::WriteLine("hp1: {0}", hp1);

/*3*/   hp1->Move(6,7);
   Console::WriteLine("hp1: {0}", hp1);

/*4*/   Point^ hp2 = gcnew Point(3,4);
    Console::WriteLine("hp2: {0}", hp2);

/*5*/   Point p1, p2(-1,-2);
    Console::WriteLine("p1: {0}, p2: {1}", %p1, %p2);
/*6*/   p1 = F(p2);
    Console::WriteLine("p1: {0}", %p1);
}