"Виртуальная функция базового класса C #" - "переопределение в управляемом классе ссылок C ++" - PullRequest
6 голосов
/ 24 сентября 2010

У меня есть класс .NET_4 Managed C ++ ref, который я наследую от базового класса .NET_4, написанного на C #.

Базовый класс C #:

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

Класс управляемого C ++:

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

Вот ошибка, которую я получаю:

'Input :: DI :: Mouse :: Delete': соответствует методу базового класса ссылки 'Core :: ResourceManager ::_Resource :: Delete ', но не помечен как «новый» или «переопределить»;Предполагается, что 'new' (и 'virtual')

Каков правильный управляемый синтаксис C ++ для переопределения функции virtual из класса C #?

1 Ответ

6 голосов
/ 24 сентября 2010

Вы ставите override после подписи функции .

//MANAGED C++ CLASS
namspace Input.DI
{
  public ref class Mouse : ResourceManager::_Resource
  {
    public:
    virtual void Delete() override {}
  };
}
...