6

I have a .NET_4 Managed C++ ref class that I derive from a .NET_4 base class written in C#.

C# base class:

namespace Core
{
  public class ResourceManager
  {
    public class _Resource
    {
      public virtual void Delete() {}
    }
  }
}

Managed C++ class:

namespace Input.DI
{
  public ref class Mouse : ResourceManager::_Resource
  {
    public:
    virtual void Delete() {}
  };
}

Here is the error I'm getting:

'Input::DI::Mouse::Delete' : matches base ref class method 'Core::ResourceManager::_Resource::Delete', but is not marked 'new' or 'override'; 'new' (and 'virtual') is assumed

What is the correct managed C++ syntax to override a virtual function from a C# class?

Tas
  • 7,023
  • 3
  • 36
  • 51
zezba9000
  • 3,247
  • 1
  • 29
  • 51

1 Answers1

6

You put override after the function signature.

//MANAGED C++ CLASS
namspace Input.DI
{
  public ref class Mouse : ResourceManager::_Resource
  {
    public:
    virtual void Delete() override {}
  };
}
Igor Zevaka
  • 74,528
  • 26
  • 112
  • 128
  • Note that you have a typo (admittedly copied from OP) with _namspace_. That should read `namespace`. I don't wish to suggest an edit (I'm under 2k) as there's nothing more I could improve with your answer – Tas Dec 03 '15 at 01:00