2010-09-24 12 views
6

Tengo una clase de ref .NET_4 Managed C++ que deriva de una clase base .NET_4 escrita en C#."Función virtual de la clase base C#" - "anular en clase de referencia gestionada de C++"

C# clase de base:

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

de C++ clase:

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

Aquí está el error que estoy recibiendo:

'Entrada :: :: DI ratón: : Eliminar ': coincide con el método de clase base ref' Core :: ResourceManager :: _ Resource :: Delete ', pero no está marcado como' nuevo 'o' anular '; 'Nuevo' (y 'virtual') se supone

¿Cuál es la correcta logrado sintaxis de C++ para anular una función virtual de una clase C#?

Respuesta

6

Usted puso overrideafter the function signature.

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

Tenga en cuenta que tiene un error tipográfico (ciertamente copiado de OP) con _namspace_. Eso debería leer 'namespace'. No deseo sugerir una edición (tengo menos de 2k) ya que no hay nada más que pueda mejorar con tu respuesta – Tas

Cuestiones relacionadas