【问题标题】:"C# base class virtual function" - "override in Managed C++ ref class"“C# 基类虚函数”-“托管 C++ 引用类中的覆盖”
【发布时间】:2010-09-24 02:37:05
【问题描述】:

我有一个 .NET_4 托管 C++ 引用类,它派生自一个用 C# 编写的 .NET_4 基类。

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' : 匹配基 ref 类方法 'Core::ResourceManager::_Resource::Delete',但未标记为 'new' 或 'override';假定为“新”(和“虚拟”)

从 C# 类中覆盖 virtual 函数的正确托管 C++ 语法是什么?

【问题讨论】:

    标签: c# c++ virtual overriding managed


    【解决方案1】:

    你把overrideafter the function signature.

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

    【讨论】:

    • 请注意,您的 namspace 有一个错字(诚然是从 OP 复制的)。那应该是namespace。我不想建议编辑(我不到 2k),因为您的回答没有什么可以改进的
    猜你喜欢
    • 2014-08-16
    • 2021-11-08
    • 2017-09-22
    • 2014-02-06
    • 1970-01-01
    • 2021-10-22
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多