Mega Code Archive

 
Categories / Visual C++ .NET / Class
 

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