Class Visual C++ .NET

#include "stdafx.h"
using namespace System;
interface class MyInterface1 { void f(); };
interface class MyInterface2 { void f(); };
ref class MyClass : MyInterface1, MyInterface2
{
   public:
   virtual void f1() = MyInterface1::f
   {
      Console::WriteLine("MyClass::f1 == MyInterface1::f");
   }
   virtual void f2() = MyInterface2::f
   {
      Console::WriteLine("MyClass::f2 == MyInterface2::f");
   }
};
int main()
{
   MyClass^ r = gcnew MyClass();
   MyInterface1^ i1 = r;
   MyInterface2^ i2 = r;
   r->f1();       // OK -- call through the object.
   r->f2();       // OK -- call through the object.
   i1->f();       // OK -- call f1.
   i2->f();       // OK -- call f2.
}