Explicit interface implementation : interface « Class « Visual C++ .NET






Explicit interface implementation

 
#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.

}

   
  








Related examples in the same category

1.Interface definition
2.base and interface
3.Interface and class(The virtual keyword is required to implement the interface method)
4.Interface list
5.Interface name collision
6.Interface properties events
7.constants in interfaces
8.interfaces implementing interfaces
9.multiple interfaces
10.static interfaces
11.class interface method ambiguity
12.Private interface