2010-09-24 17 views
6

Ho una classe ref di .NET_4 Managed C++ che deriva da una classe base .NET_4 scritta in C#."C# base class virtual function" - "override nella classe ref ref di C++ gestita"

C# classe di base:

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

Managed C++ classe:

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

Qui è l'errore che sto ricevendo:

'ingresso :: :: DI Mouse: : Elimina ': corrisponde al metodo della classe ref base' Core :: ResourceManager :: _ Resource :: Delete ', ma non è contrassegnato come' new 'o' override '; 'Nuovo' (e 'virtuale') si assume

Qual è la sintassi corretta riuscita C++ per ignorare una funzione virtual da una classe C#?

risposta

6

Hai inserito overrideafter the function signature.

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

Nota che hai un errore di battitura (sicuramente copiato dall'OP) con _namspace_. Questo dovrebbe leggere 'namespace'. Non desidero suggerire una modifica (sono sotto 2k) perché non c'è niente di più che potrei migliorare con la tua risposta – Tas