base and interface : interface « Class « Visual C++ .NET

Home
Visual C++ .NET
1.2D
2.Class
3.Collections
4.Data Type
5.Database ADO.net
6.Delegate
7.Development
8.File Directory
9.Function
10.Generics
11.GUI Form
12.Language Basics
13.Network
14.Reflection
15.Security
16.Statement
17.Structure
18.Thread
19.XML
Visual C++ .NET » Class » interface 
base and interface
 
#include "stdafx.h"
using namespace System;

ref class MyClass{
   public:
      virtual void f() { Console::WriteLine("MyClass::f")}
      virtual void g() { Console::WriteLine("MyClass::g")}
};

interface class MyInterface{
   void f();
   void g();
};

ref class C : MyClass, MyInterface{
   public:

   virtual void f() new{
      Console::WriteLine("C::f");
   }
   virtual void g() override{
      Console::WriteLine("C::g");
   }
};

int main()
{
   MyClass^ b = gcnew MyClass();
   C^ c = gcnew C();
   MyInterface^ i = c;

   b->f()// calls MyClass::f
   c->f()// calls C::f
   i->f()// calls C::f since C::f implements MyInterface::f

   MyClass^ bc = c;  // b pointing to instance of C
   bc->f()// calls MyClass::f since C::f is unrelated

   b->g();  // calls MyClass::g
   c->g();  // calls C::g
   i->g();  // calls C::g since C::g implements MyInterface::g

   bc->g()// calls C::g since C::g overrides MyClass::g
}

   
  
Related examples in the same category
1.Interface definition
2.Interface and class(The virtual keyword is required to implement the interface method)
3.Interface list
4.Interface name collision
5.Interface properties events
6.constants in interfaces
7.interfaces implementing interfaces
8.multiple interfaces
9.static interfaces
10.class interface method ambiguity
11.Explicit interface implementation
12.Private interface
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.